libconfig++ -stdlib=libc++未定义的符号
libconfig++ -stdlib=libc++ Undefined symbols
试图得到libconfig++工作的一个非常简单的例子。然而,由于编译器选项'-stdlib=libc++'和'-std=c++11',我遇到了以下链接错误。
达尔文iMac。当地12.2.0
Darwin Kernel Version 12.2.0
xnu-2050.18.24 ~ 1/RELEASE_X86_64 x86_64
Config cfg;
cfg.readFile( "example.cfg" );
string value = "";
const string& key = "application.base";
cfg.lookupValue( key, value );
构建clang++ -o main main.cpp -lconfig++ -stdlib=libc++ -std=c++11
误差Undefined symbols for architecture x86_64: "libconfig::Config::lookupValue(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const", referenced from:
libconfig::Config::lookupValue(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const in main-mFa01w.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这个错误消息表明这个成员函数:
libconfig::Config::lookupValue(const std::string& path, std::string& value) const;
是用-stdlib=libc++
编译的(可能是内联的,但我猜)。然后调用这个成员函数:
libconfig::Config::lookupValue(char const* path, std::string& value) const
但是后一个函数没有使用-stdlib=libc++
编译。
最可能的修复方法是用-stdlib=libc++
重新编译libconfig++。
相关文章:
- 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