我正在尝试使用 clang++ 在 osx 10.9 上构建 poco 库。
我正在运行 make CXXFLAGS+=-stdlib=libstdc++ CFLAGS+=-stdlib=libstdc++ LDFLAGS+=-stdlib=libstdc++
。
它已成功编译所有 .o 文件:
** Compiling 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
标志没有使用,我收到了一些这样的错误:
Undefined symbols for architecture x86_64:
"std::basic_string, std::allocator >::data() const", referenced from: Poco::UnicodeConverter::convert(std::basic_string, std::allocator > const&, std::string&) in UnicodeConverter.o "std::basic_string, std::allocator >::length() const", referenced from: Poco::UnicodeConverter::convert(std::basic_string, std::allocator > const&, std::string&) in UnicodeConverter.o
我做错了什么?
最佳答案
好吧,我的解决方案是将 -stdlib
标志放入 build/config/Darwin-clang
并使用所需的 Darwin-clang
配置构建配置。
关于c++ - osx - 构建 POCO 库时出现链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27689882/