使用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

回到顶部