我正在試圖鏈接mathematica中的Mathlink庫。我使用的是x86_64-suse-linux操作系統,但是當我在Mathematica中檢查$ SystemID時,它告訴我我正在使用'Linux'而不是'Linux-x86-64'。
這是一個問題,因爲如果我嘗試圖書館作爲
g++ cpp2mma.cpp -L/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Linux/CompilerAdditions/ -lML32i3 -lpthread -lstdc++ -lm -lrt
鏈接(32位版本 - 而在Linux /唯一庫)
我收到以下錯誤:
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible
/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Linux/CompilerAdditions//libML32i3.so when searching for -lML32i3
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible
/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Linux/CompilerAdditions//libML32i3.a when searching for -lML32i3
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: cannot find -lML32i3
collect2: ld returned 1 exit status
但是,如果我嘗試它作爲
g++ cpp2mma.cpp -L/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/ -lML64i3 -lpthread -lstdc++ -lm -lrt
鏈接210
它編譯就好了,但如果我嘗試運行它,我得到以下錯誤:
./a.out: error while loading shared libraries: libML64i3.so: cannot open shared object file: No such file or directory
該文件存在明顯的運行「定位libML64i3.so」收益率:
/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Libraries/Linux-x86-64/libML64i3.so
/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/libML64i3.so
上午我正確地認爲問題在於Mathematica認爲我沒有運行32位系統?如果是這樣,我該怎麼辦?
你肯定使用Mathematica的32位版本。你從SystemInformation [「Kernel」,「ReleaseID」]得到什麼值? –
你能發佈cpp2mma.cpp嗎? –