我尝试在Qt Creator中的Mac OS X上使用Boost和Clang ++编译程序。一切顺利:我已经编译了boost和所有程序模块,但是在链接阶段clang找不到任何符号:
Undefined symbols for architecture x86_64:
"_BIO_ctrl", referenced from:
boost::asio::ssl::detail::engine::map_error_code(boost::system::error_code&) const in session.o
.....
"boost::log::v2s_mt_posix::core::get()", referenced from:
INIT_LOG() in log.o
.....
Run Code Online (Sandbox Code Playgroud)
qmake配置:
CONFIG -= qt
CONFIG += console debug
TARGET = server
QMAKE_CXXFLAGS -= -mmacosx-version-min=10.6
QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7
QMAKE_LFLAGS -= -mmacosx-version-min=10.6
QMAKE_LFLAGS += -stdlib=libc++ -mmacosx-version-min=10.7
Run Code Online (Sandbox Code Playgroud)
链接命令为:
clang ++ -headerpad_max_install_names -stdlib = libc ++ -mmacosx-version-min = 10.7 -o服务器main.o session.o log.o -L / Users / apple / Lib / boost_1_53_0 / usr / lib -L / opt / local / lib- L / usr / lib -lssl -lboost_system -lboost_filesystem -lboost_date_time -lboost_thread -lboost_log_setup -lboost_log -lboost_chrono -lboost_program_options
如果我重命名* .dylib,它说找不到-lboost_ *,因此它实际上是SEES库文件。
据nm我发现,这些符号存在:
0000000000018ad0 T __ZN5boost3log11v2_mt_posix4core3getEv
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1624 次 |
| 最近记录: |