【发布时间】:2014-01-14 00:26:32
【问题描述】:
我回到了 C++ 中,但是我正在使用一个 macosx 特立独行的项目我必须使用一个外部库,它是 https://github.com/augcampos/asterisk-cpp
所以,我已经编译了库并得到了我的.dylib
然后我像这样编译了一个主要测试:
g++ -Wall Test.cpp -o teste -L/usr/local/lib/ -I/usr/local/include -lasteriskcpp -lpthread -lboost_system -std=c++0x
但是当我运行我的二进制文件时出现了这个错误
dyld: Symbol not found: __ZTVN11asteriskcpp10ParkActionE
Referenced from: /usr/local/lib/libasteriskcpp.0.dylib
Expected in: flat namespace
in /usr/local/lib/libasteriskcpp.0.dylib
Trace/BPT trap: 5
我在 google 上搜索了 3 天,他们说这可能是代码中的问题(我对此表示怀疑),或者主要是编译期间的错误链接。 我不知道它是如何无法正确链接的,因为它在 lib 的编译期间是可以的,而且我的小主要测试:/
感谢您的帮助。 祝你有美好的一天
【问题讨论】:
-
我认为这是因为你已经动态链接,所以它只是试图在运行时加载符号。所以我认为这是一个链接器错误,但它只在运行时显示出来。你是如何编译星号-cpp 库的?你用了什么命令等等?
-
我用的是配置模式,用的是boost,c++0x
标签: c++ compilation linker asterisk asteriskami