

動作環境:  
Windows 10 home 64bit  
rustc 1.26.2 stable  
host x86_64-pc-windows-msvc

[code]

    extern crate ndarray;
    use ndarray::{arr2};
    
    fn main() {
        let a = arr2(&[[1., 2.],[3., 4.]]);
        println!("{:?}", a);
    }
    
[/code]

こちらは`cargo run`で正常に動作するのですが、

[code]

    extern crate ndarray;
    use ndarray::{arr2};
    
    fn main() {
        let a = arr2(&[[1., 2.],[3., 4.]]);
        let b = arr2(&[[1., 2.],[5., 6.]]);
        let matrix = a.dot(&b);
        println!("{:?}", matrix);
    }
    
[/code]

こちらでは `linking with `C:\Program Files (x86)\~~~\x64\link.exe` failed: exit
code: 1120`とリンクエラーが出てきます。  
VC++のビルドツールなどは入れてるのですが。

調べても対処法などがわからなかったです。  
解決方法などご存知の方いたら教えていただけないでしょうか。


CC BY-SA 4.0
2018-08-12T06:22:05.777
47458
2018-08-12T13:05:07.240
2018-08-12T10:22:42.693
29700
29700
question
rust
rust-ndarrayのdot()を用いるとリンクエラーが起きます


リンクエラー発生時のtomlファイルが

[code]

    [dependencies]
    ndarray = "0.11.0"
    
[/code]

であったのを

[code]

    [dependencies]
    ndarray = { version = "0.11.0", feature = ["blas"] }
    blas-src = { version = "0.2.0", default-features = false, features = ["openblas"] }
    openblas-src = { version = "0.6.0", default-features = false, features = ["cblas", "system"] }
    
[/code]

に変更することで解決しました。

なおリンクエラーの詳細は以下の通りです。  
長いため一部省略しています

[code]

    error: linking with `C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX64\x64\link.exe` failed: exit code: 1120
      |
      = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib"
       "C:\\...\\sample_proj\\target\\debug\\deps\\sample_proj-32a21e51ad011dc7.10o4t5xq5v1kj9xh.rcgu.o"
                                        (略)
       "C:\\...\\sample_proj\\target\\debug\\deps\\sample_proj-32a21e51ad011dc7.ygdixdklmuroyow.rcgu.o" 
       "/OUT:C:\\...\\sample_proj\\target\\debug\\deps\\sample_proj-32a21e51ad011dc7.exe" 
       "C:\\...\\sample_proj\\target\\debug\\deps\\sample_proj-32a21e51ad011dc7.crate.allocator.rcgu.o" 
       "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" 
       "/NATVIS:C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" 
       "/NATVIS:C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" 
       "/LIBPATH:C:\\...\\sample_proj\\target\\debug\\deps" 
       "/LIBPATH:C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" 
       "C:\\...\\sample_proj\\target\\debug\\deps\\libndarray-ce30bc73040fb13c.rlib" 
                                        (略)
       "C:\\...\\sample_proj\\target\\debug\\deps\\liblibc-8c2934cfe4982c42.rlib" 
       "C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-7448a93a40cf2c3f.rlib" 
                                        (略)
       "C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-e2f4c2f8ebed02cb.rlib" 
       "C:\\...\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-c4ca9f329f3bf160.rlib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib"
      = note: Non-UTF-8 output: sample_proj-32a21e51ad011dc7.3ohv1ua84472yy1p.rcgu.o : error LNK2019:
        \x96\xa2\x89\xf0\x8c\x88\x82\xcc\x8aO\x95\x94\x83V\x83\x93\x83{\x83\x8b cblas_sgemm \x82\xaa\x8a\xd6\x90\x94 _ZN7ndarray6linalg11impl_linalg12mat_mul_impl17h358820cd8bf10458E 
        \x82\xc5\x8eQ\x8f\xc6\x82\xb3\x82\xea\x82\xdc\x82\xb5\x82\xbd\x81B\r\nsample_proj-32a21e51ad011dc7.3ohv1ua84472yy1p.rcgu.o : error LNK2019:
        \x96\xa2\x89\xf0\x8c\x88\x82\xcc\x8aO\x95\x94\x83V\x83\x93\x83{\x83\x8b cblas_dgemm \x82\xaa\x8a\xd6\x90\x94 _ZN7ndarray6linalg11impl_linalg12mat_mul_impl17h358820cd8bf10458E
        \x82\xc5\x8eQ\x8f\xc6\x82\xb3\x82\xea\x82\xdc\x82\xb5\x82\xbd\x81B\r\nC:\\...\\sample_proj\\target\\debug\\deps\\sample_proj-32a21e51ad011dc7.exe
    : fatal error LNK1120: 2 \x8c\x8f\x82\xcc\x96\xa2\x89\xf0\x8c\x88\x82\xcc\x8aO\x95\x94\x8eQ\x8f\xc6\r\n
    
[/code]


CC BY-SA 4.0
2018-08-12T13:05:07.240
47465
2018-08-12T13:05:07.240
29700
47458
answer