My CMakeFiles.txt trông như thế này:Liên kết tăng viện với Boost_USE_STATIC_LIB OFF trên Windows
cmake_minimum_required (VERSION 2.6)
# Set warnings on and enable debugging
SET(CMAKE_C_FLAGS "-Wall -q")
include(FindBoost)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.57.0 COMPONENTS system filesystem REQUIRED)
if(Boost_FOUND)
message(STATUS "Boost found!")
include_directories(${Boost_INCLUDE_DIRS})
add_executable(foo main.cpp)
# Needed for asio
if(WIN32)
target_link_libraries(foo wsock32 ws2_32)
endif()
target_link_libraries(foo ${Boost_LIBRARIES})
endif()
tôi làm dự án cho Visual Studio 2013 64-bit:
cmake -G "Visual Studio 12 Win64" -DBOOST_LIBRARYDIR=D:\Development\Tools\boost_1_57_0\stage\x64\lib ..\KServer
Đầu ra là:
-- The C compiler identification is MSVC 18.0.31101.0
-- The CXX compiler identification is MSVC 18.0.31101.0
-- Check for working C compiler using: Visual Studio 12 2013 Win64
-- Check for working C compiler using: Visual Studio 12 2013 Win64 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 12 2013 Win64
-- Check for working CXX compiler using: Visual Studio 12 2013 Win64 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.57.0
-- Boost version: 1.57.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- Boost found!
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Development/Private/C++/KServerProject
Tất cả đều tốt và tốt.
Vấn đề bắt đầu ở đây:
Khi tôi thay đổi tập tin cmake tôi để sử dụng:
set(Boost_USE_STATIC_LIBS OFF)
Sau đó tôi nhận được lỗi sau trong Visual Studio khi tòa nhà:
error LNK1104: cannot open file 'libboost_filesystem-vc120-mt-gd-1_57.lib' D:\Development\Private\C++\KServerProject\src\LINK foo
Kiểm tra số Property Pages
trong studio, thư viện được thêm dưới dạng phụ thuộc:
Khi tay thêm thư mục D:\Development\Tools\boost_1_57_0\stage\x64\lib
-Additional Library Directories
nó xây dựng tốt.
Tôi làm cách nào để tạo dự án bằng cách sử dụng lib động?
Trong bản dựng tăng cường mà tôi sử dụng với cmake, tôi có 3 thư mục trong thư mục gốc của bản dựng. xây dựng, bao gồm và lib. Mặc dù tôi xây dựng từ nguồn. – drescherjm
Tôi sử dụng kiểu dựng sẵn sau đây với bjam '--build-type = complete stage install' – drescherjm
Nó không phải là một vấn đề với tăng. Tôi đã xây dựng với 'hoàn thành'. Tôi cần dự án sử dụng boost để làm việc với liên kết động khi tạo bằng cmake. – Asken