osx - 构建 POCO 库时出现链接错误

osx - Linking error, when building POCO library

本文关键字:链接 错误 构建 POCO osx      更新时间:2023-10-16

我正在尝试使用 clang++ 在 osx 10.9 上构建 poco 库。
我正在运行make CXXFLAGS+=-stdlib=libstdc++ CFLAGS+=-stdlib=libstdc++ LDFLAGS+=-stdlib=libstdc++.
它已成功编译所有 .o 文件:

** 编译 src/UUIDGenerator.cpp (release, shared) clang++ -Iinclude -I/Users/croco/Work/poco-1.6.0-all/CppUnit/include -I/Users/croco/Work/poco-1.6.0-all/CppUnit/WinTestRunner/include -I/Users/croco/Work/poco-1.6.0-all/Foundation/include -I/Users/croco/Work/poco-1.6.0-all/XML/include -I/Users/croco/Work/poco-1.6.0-all/JSON/include -I/Users/croco/Work/poco-1.6.0-all/Util/include -I/Users/croco/Work/poco-1.6.0-all/Net/include -I/Users/croco/work/poco-1.6.0-all/Crypto/include -I/Users/croco/Work/poco-1.6.0-all/NetSSL_OpenSSL/include -I/Users/croco/Work/poco-1.6.0-all/data/include -I/Users/croco/Work/poco-1.6.0-all/Data/SQLite/include -I/Users/croco/Work/poco-1.6.0-all/Data/ODBC/include -I/Users/croco/Work/poco-1.6.0-all/Data/MySQL/include -I/Users/croco/Work/poco-1.6.0-all/MongoDB/include -I/Users/croco/Work/poco-1.6.0-all/Zip/include -I/Users/croco/Work/poco-1.6.0-all/PageCompiler/include -I/Users/croco/Work/poco-1.6.0-all/PageCompiler/File2Page/include -stdlib=libstdc++ -DNDEBUG -O2 -fasm-blocks -fPIC -c src/UUIDGenerator.cpp -o /Users/croco/Work/poco-1.6.0-all/Foundation/obj/Darwin/x86_64/release_shared/UUIDGenerator.o

但是在链接时,-stdlib标志没有使用,我收到一些这样的错误:

建筑的未定义符号x86_64:
"标准::basic_string, std::分配器>::d ata() const",引用自: Poco::UnicodeConverter::convert(std::basic_string, std:::allocator> const&, std::string&) in UnicodeConverter.o "std::basic_string, std::allocator>::length() const", 参考自: Poco::UnicodeConverter::convert(std::basic_string, std:::allocator> const&, std::string&) in UnicodeConverter.o

我做错了什么?

好吧,我的解决方案是将-stdlib标志放在build/config/Darwin-clang并使用所需的Darwin-clang配置来配置构建。