har*_*rik 12 boost cmake linker-errors
我正在尝试通过使用CMake创建MSVC9.0项目文件来构建具有boost库的应用程序.
我收到以下错误:
错误3致命错误LNK1104:无法打开文件'libboost_system-vc90-mt-gd-1_44.lib'
这是CMake配置
cmake_minimum_required(VERSION 2.8)
PROJECT( TestProject)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
set(BOOST_ROOT "D:/boost_1_44_0")
set(Boost_USE_MULTITHREADED ON)
FIND_PACKAGE( Boost 1.44.0 REQUIRED unit_test_framework system)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${BOOST_ROOT})
LINK_DIRECTORIES(${LINK_DIRECTORIES} "D:/boost_1_44_0/stage/lib")
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
SET(RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
ADD_EXECUTABLE(testapp
main.cpp)
TARGET_LINK_LIBRARIES(testapp
${Boost_SYSTEM_LIBRARY}
)
SET_TARGET_PROPERTIES( testapp PROPERTIES DEBUG_POSTFIX "d" )
Run Code Online (Sandbox Code Playgroud)
我已经使用以下选项为静态和共享(调试和发布)构建了增强功能.
bjam toolset=msvc variant=debug link=shared runtime-link=shared threading=multi --build-type=complete stage
bjam toolset=msvc variant=release link=shared runtime-link=shared threading=multi --build-type=complete stage
bjam toolset=msvc variant=debug link=static runtime-link=static threading=multi --build-type=complete stage
bjam toolset=msvc variant=release link=static runtime-link=static threading=multi --build-type=complete stage
Run Code Online (Sandbox Code Playgroud)
我不确定我在配置中缺少什么.有什么建议?谢谢.
And*_*dré 21
首先,你是否检查了你的stage-dir"D:/ boost_1_44_0/stage/lib"中是否存在"'libboost_system-vc90-mt-gd-1_44.lib"?
第二:我以前使用Boost和CMake的find_package(Boost)时遇到的最常见问题是对自动链接的干扰.您可以通过向编译标志添加定义来禁用它
add_definitions( -DBOOST_ALL_NO_LIB )
Run Code Online (Sandbox Code Playgroud)
但是,您可能需要指定是否要链接到动态版本或静态版本
set( Boost_USE_STATIC_LIBS ON ) # or Off, depending on what you want
find_package( Boost 1.44.0 REQUIRED unit_test_framework system)
Run Code Online (Sandbox Code Playgroud)
当然,您始终可以检查生成的visual studio文件,以查看实际添加到项目中的链接库.
| 归档时间: |
|
| 查看次数: |
9425 次 |
| 最近记录: |