Bul*_*aza 5 c++ boost cmake visual-studio
我使用的包管理器vcpkg来安装(静态)Boost通过库vcpkg install boost:x64-windows-static。
此外,我CMake用作我的构建系统,并通过命令传递C:\vcpkg\scripts\buildsystems\vcpkg.cmake给。CMake-DCMAKE_TOOLCHAIN_FILE CMake
在我的CMakeLists.txt强制静态Boost库中:
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost COMPONENTS filesystem iostreams REQUIRED)
if (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
endif ()
# ...
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
但是,Visual Studio仍然尝试查看我的Boost库的错误文件路径:
Error 'C:/vcpkg/installed/x64-windows/lib/boost_filesystem-vc140-mt.lib', needed by 'MyProject.exe', missing and no known rule to make it
Run Code Online (Sandbox Code Playgroud)
如果我安装动态Boost库,它将很好地构建,因为这是Visual Studio外观。但是,我想在我的构建中使用静态库,以便所有DLLs 都“合并”到最终的EXE.
我怎样才能做到这一点?
小智 5
我有同样的问题。
解决了
define set(Boost_INCLUDE_DIR "path")
Run Code Online (Sandbox Code Playgroud)
在 find_package 强制之前。
当您使用cmakewith时vcpkg,在中查找_VCPKG_INSTALLED_DIR变量CmakeCache.txt
set(Boost_INCLUDE_DIR ${_VCPKG_INSTALLED_DIR}/x64-windows-static/include)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4135 次 |
| 最近记录: |