2
我已經set(Boost_USE_MULTITHREADED ON)
但它仍然不使用-mt
庫。cmake不使用提升多線程庫
cmake_minimum_required(VERSION 2.6)
PROJECT(app)
set(Boost_USE_MULTITHREADED ON)
FIND_PACKAGE(Boost COMPONENTS filesystem program_options thread serialization REQUIRED)
ADD_EXECUTABLE(app long_list_of_files)
TARGET_LINK_LIBRARIES(app ${Boost_LIBRARIES})
我可以看到序列化過程只使用一個CPU核心(100%),而不使用其他核心。也LDD不顯示經由螺紋-mt
庫
linux-gate.so.1 => (0xb781f000)
libboost_filesystem.so.1.42.0 => /usr/lib/libboost_filesystem.so.1.42.0 (0xb77e9000)
libboost_program_options.so.1.42.0 => /usr/lib/libboost_program_options.so.1.42.0 (0xb7795000)
libboost_thread.so.1.42.0 => /usr/lib/libboost_thread.so.1.42.0 (0xb7780000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7766000)
libboost_serialization.so.1.42.0 => /usr/lib/libboost_serialization.so.1.42.0 (0xb76f3000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7608000)
libm.so.6 => /lib/libm.so.6 (0xb75e2000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb75c5000)
libc.so.6 => /lib/libc.so.6 (0xb7468000)
libboost_system.so.1.42.0 => /usr/lib/libboost_system.so.1.42.0 (0xb7463000)
librt.so.1 => /lib/librt.so.1 (0xb745a000)
/lib/ld-linux.so.2 (0xb7820000)
你對'ls -l/usr/lib/libboost_thread-mt.so'的輸出得到了什麼? –
是的文件存在'lrwxrwxrwx 1 root root 25 2012-01-27 21:43 /usr/lib/libboost_thread-mt.so - > libboost_thread.so.1.42.0' –
所以你得到正確的版本。 ldd會向您顯示它正在使用的實際共享對象,而不是它的符號鏈接。 –