我正在使用软件包管理器vcpkg
通过vcpkg install boost:x64-windows-static
来安装(静态)Boost
库。
此外,我使用CMake
作为我的构建系统,并通过-DCMAKE_TOOLCHAIN_FILE
CMake
命令将C:\vcpkg\scripts\buildsystems\vcpkg.cmake
传递给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})
然而,Visual Studio
仍然试图查看错误的文件路径以获取我的 Boost
库:
然而,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
如果我安装动态的 Boost
库,它将能够成功构建,因为这是 Visual Studio
查找的位置。但是,我想在我的构建中使用静态库,以便所有的 DLL
都被“合并”到最终的 EXE
中。如何实现这一点?
C:/vcpkg/installed/x64-windows/lib/boost_filesystem-vc140-mt.lib
是错误的,那么在您的计算机上静态库的 正确路径 是什么?根据 Boost 库的命名规则,boost_filesystem-vc140-mt.lib
实际上是一个静态库文件。 - TsyvarevC:/vcpkg/installed/x64-windows-static/lib/boost_filesystem-vc140-mt.lib
。这是当我安装静态库时,vcpkg
设置的路径。 - BullyWiiPlaza