1
好吧,所以我刚开始玩CMake。我正在尝试构建一个依赖于MySQL和CURL的项目。这是目录结构:Cmake链接到MySQL和卷曲,LNK2019
./
./src
./cmake
CMakeLists.txt
这真的很简单,src只包含9个Cpp文件和一个CMakeLists.txt。
运行CMake时,一切正常。由于MySQL和CURL没有有效链接,我只是得到了一堆链接器错误。我究竟做错了什么 ?
根的CMakeLists.txt:
PROJECT(IRCBot)
INCLUDE(CPack)
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindCURL.cmake)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
FIND_PACKAGE(CURL)
IF(CURL_FOUND)
MESSAGE(STATUS "Curl libraries found at: ${CURL_LIBRARIES}")
MESSAGE(STATUS "Curl includes found at: ${CURL_INCLUDE_DIRS}")
else()
MESSAGE(SEND_ERROR "Could not find cURL on your system")
ENDIF(CURL_FOUND)
FIND_PACKAGE(MySQL)
IF(MYSQL_FOUND)
MESSAGE(STATUS "MySQL found at: ${MYSQL_INCLUDE_DIR}, ${MYSQL_LIBRARIES}")
ELSE(MYSQL_FOUND)
MESSAGE(SEND_ERROR "Couldn't find MySQL include files and/or library")
ENDIF(MYSQL_FOUND)
ADD_SUBDIRECTORY(src)
而且./src/CMakeLists.txt
FILE(GLOB_RECURSE IRCBot_files *.cpp *.h)
SET(IRCBot_src
${IRCBot_files}
)
INCLUDE_DIRECTORIES(
${CURL_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIR}
)
LINK_DIRECTORIES(
${MYSQL_LIBRARIES}
${CURL_LIBRARIES}
)
ADD_EXECUTABLE(IRCBot ${IRCBot_src})
INSTALL(TARGETS IRCBot DESTINATION ${INSTALL_DIR}/bin)
在你给我答案前不久我发现了它。然而,尽管现在它在Linux上构建得很好,但它并不想在Windows上构建 - 我仍然遇到链接器错误。可悲的是我目前无法测试,我正在重新安装VS2012。 – Warpten