使用Visual Studio 2015的cmake
我有一个C++库(retdec-CPP),这是我建立并使用安装CMake的3.10.0使用Visual Studio 2015的cmake
我想在一个Visual Studio 2015的项目中使用这个库(此特定版本是需要的)。我知道需要单独构建调试和发布,因此我遵循this guide。
现在我想用这个c。使用CMake的++库在我的Visual Studio项目,但我有写作的CMakeLists.txt
麻烦这是怎么它现在看起来:
project(prog CXX) cmake_minimum_required(VERSION 3.6)
find_package(Threads)
set(RETDEC_SRC_DIR "C:/Users/kkkkk/Desktop/retdec-cpp")
set(RETDEC_BUILD_DIR "C:/Users/kkkkk/Desktop/retdec-cpp/build")
#added :
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
#
include_directories(SYSTEM "${RETDEC_SRC_DIR}/include")
link_directories(
"${RETDEC_BUILD_DIR}/debug/src/retdec"
"${RETDEC_BUILD_DIR}/debug/third_party/src/cpp-netlib-build/libs/network/src"
"${RETDEC_BUILD_DIR}/debug/src/json-cpp-build/src/lib_json"
"${RETDEC_BUILD_DIR}/release/src/retdec"
"${RETDEC_BUILD_DIR}/release/third_party/src/cpp-netlib-build/libs/network/src"
"${RETDEC_BUILD_DIR}/release/src/json-cpp-build/src/lib_json"
)
add_executable(prog prog.cpp)
target_link_libraries(
retdec
boost_filesystem
boost_system
boost_thread
boost_chrono
boost_date_time
boost_atomic
ssl
crypto
cppnetlib-uri
cppnetlib-client-connections
jsoncpp
${CMAKE_THREAD_LIBS_INIT}
)
当我建立它在Visual Studio中,它不断上显示此错误:
LNK1104:无法打开文件retdec.lib
显然有一些错误的,我CMakeLists。
如何在使用Cmake的Visual Studio 2015项目中包含此库?
回答:
从错误的问题:从事实
LNK1104:cannot open file retdec.lib
结果,所有你在link_directories()
调用指定的目录中,似乎并不包括retdec.lib
您正在试图连接的内功能target_link_libraries()
。
解决方法很简单:
- 找到retdec.lib的位置,并把它放在你已经链接的一个文件夹(我在你link_directories发现一个item调用价值:
"${RETDEC_BUILD_DIR}/release/src/retdec"
是这样的按照名称来判断,它好像是src文件的目录,而不是libs。在哪里寻找类似"${RETDEC_BUILD_DIR}/release/lib"
的东西?)。 - 或者,您可以找到retdec.lib的位置,然后将该目录添加到您的
link_directories()
列表中。
以上是 使用Visual Studio 2015的cmake 的全部内容, 来源链接: utcz.com/qa/267357.html