pococ++中未定义的符号
Undefined symbol in Poco C++
我以前编译了一个简单的命令行程序,使用Poco c++(顺便说一下,我喜欢它)。程序运行了好几个月。
我的电脑一定发生了一些变化,因为现在当我运行程序时,我收到以下错误:
dyld: Symbol not found: __ZN4Poco4Util11Application12handleOptionERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_
Referenced from: /Users/me/bin/sqlmerge
Expected in: /usr/local/opt/poco/lib/libPocoUtil.16.dylib
in /Users/me/bin/sqlmerge
谁能告诉我为什么会这样?我用Poco 1.4.6编译,用Poco 1.4.6运行,尽管由于某种原因Poco在我的电脑上丢失了,我不得不重新安装brew install poco
(我显然是在Mac上运行这个)。
EDIT:我不确定原因,但是重新安装--c++11
选项打开修复了这个问题。例如:
brew install poco --c++11
也许从旧版本的c++标准到c++ 11, c++的名字会有细微的变化?
c++没有应用程序二进制接口。这导致了许多令人头疼的问题,包括当人们升级编译器版本时强迫他们重新编译。相同的编译器,不同的版本,不同的名称混淆。这就是为什么大多数库都有一个C接口…由于历史原因,C接口在所有已知平台上都有稳定的名称混淆。
http://morpher.com/documentation/articles/abi/c++ ABI问题列表
Herb Sutter为c++提出了一个稳定的平台ABI。所以帮助可能在路上:-)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4028.pdf相关文章:
- vscode g++链路故障:体系结构x86_64的未定义符号
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- 在C++中使用内联方法时出现未定义的符号错误
- 引擎节点:未定义的符号:_ZTV6Config
- 未定义的引用,尽管存在符号,但 std::experimental::可选
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- Windows 链接器是否使用 LoadLibrary 解析 DLL 中未定义的符号?
- C++ 中 dlsym 的未定义符号
- MacOS 上的 Xcode 11 项目不在一个函数中使用 sin 和 cos:未定义的符号"___sincosf_stret"
- 仅在 MacOS 上析构函数的未定义符号
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- PCL 出错:体系结构x86_64 @pcl的未定义符号
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 从 C++ 到 Python 的 SWIG:未定义的符号导入问题
- 使用静态变量未解析的外部符号/未定义的引用时出错
- 无法导出mexfunction:符号未定义的collect.exe2.exe:错误:ld返回1退出状态
- 模板生成错误:体系结构的符号未定义 x86_64:
- 继承-符号未定义
- __next_prime符号未定义
- 错误:对cv:: videoccapture::~ videoccapture()的引用符号未定义,命令行中缺少DSO