我正在尝试在运行OSX 10.11.6的Mac上安装QuantLib。通过MacPorts安装了Boost 1.59,然后按照these说明进行操作。
我使用了这些额外的环境变量
./configure --with-boost-include=/opt/local/include/ \
--with-boost-lib=/opt/local/lib/ --prefix=/opt/local/ \
CXXFLAGS='-O2 -stdlib=libstdc++ -mmacosx-version-min=10.6' \
LDFLAGS='-stdlib=libstdc++ -mmacosx-version-min=10.6'
然后make && sudo make install
。
但是当我运行百慕大交换测试时,它给了我同样的错误here。
小前提:我对C ++一无所知。我需要QuantLib来处理Python。所以我仔细阅读了SmallChess的答案并尝试自己解决。正如我在他的回答中所读到的那样
你不能只编译BermudanSwaption.cpp并希望一切都会好的。您必须编译整个QuantLib库并链接生成的库文件。请谷歌"编译和链接C ++"了解更多信息 到目前为止,在Mac上实现它的最简单方法是使用Xcode。您需要创建一个新的Xcode项目,并将整个Quantlib项目文件导入其中。接下来,您需要创建一个main()函数。 Xcode会自动编译和链接。
这正是我所做的:
libQuantLib.0.dylib
libstdc++(GNUC++ standard library)
设置为C ++标准库
/opt/local/include/
和图书馆搜索路径,包括:/opt/local/lib
现在,我设法复制了一个包含库的简单代码,即使有很多警告,它也会运行。仍然当我在终端上运行百慕大交换测试的命令时,我得到了同样的错误。我究竟做错了什么?
附加信息(可能有用也可能没用):如果我将Xcode上的C ++标准库设置更改为libc ++,我在Xcode上遇到的问题与我在尝试百慕大交换测试时得到的相同(ld:symbol(s)找不到架构x86_64)。
非常感谢任何帮助 此致
找到代码的图片