2017-03-20 120 views
-1

錯誤鐺:error: linker command failed with exit code 1 (use -v to see invocation)QuantLib 1.9安裝在OS X

上運行的編譯例如從http://quantlib.org/install/macosx.shtml

g++ -I/opt/local/include/ -I/opt/local/include/boost BermudanSwaption.cpp \ 
    -o bermudanswaption -L/opt/local/lib/ -lQuantLib 

錯誤信息是:

clang -cc1 version 8.0.0 (clang-800.0.42.1) default target x86_64-apple-darwin16.1.0 
ignoring nonexistent directory "/usr/include/c++/v1" 
#include "..." search starts here: 
#include <...> search starts here: 
/opt/local/include 
/opt/local/include/boost 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1 
/usr/local/include 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/include 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include 
/usr/include 
/System/Library/Frameworks (framework directory) 
/Library/Frameworks (framework directory) 
End of search list. 
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -o bermudanswaption -L/opt/local/lib/ /var/folders/m3/39_h4bg52xzfv8800_zrkvrh0000gn/T/BermudanSwaption-a73fac.o -lQuantLib -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a 
Undefined symbols for architecture x86_64: 
...... 
    "QuantLib::detail::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, QuantLib::detail::percent_holder const&)", referenced from: 
     calibrateModel(boost::shared_ptr<QuantLib::ShortRateModel> const&, std::__1::vector<boost::shared_ptr<QuantLib::CalibrationHelper>, std::__1::allocator<boost::shared_ptr<QuantLib::CalibrationHelper> > > const&) in BermudanSwaption-a73fac.o 
     _main in BermudanSwaption-a73fac.o 
    "QuantLib::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, QuantLib::Date const&)", referenced from: 
     QuantLib::InterestRateIndex::valueDate(QuantLib::Date const&) const in BermudanSwaption-a73fac.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

`

這是什麼意思,爲什麼是LLVM調用?我使用的是最新的Xcode,Mac OSX 10.12.1,熟悉python,但沒有命令行安裝或編譯...。

回答

0

錯誤非常簡單。您只編譯BermudanSwaption.cpp,但您還需要編譯整個QuantLib。否則,鏈接器無法找到實現。

+0

謝謝。哪部分錯誤描述了這一點? @Student T – rrg