我正在使用 Kdevelop4,并且想使用默认的 CMake c++ 项目。
我的计划是将我的应用程序划分为程序、几个共享库,并且我希望有一个单独的项目来构建单元测试(我打算使用谷歌测试)。
我有几个问题:
- 如何修改默认 cmake 文件以获得共享库,而不是可执行文件?
- 如何将谷歌测试框架与 cmake 集成?
KDevelop4 生成的默认 CMakeLists.txt 如下所示:
project(kdevbook)
add_executable(kdevbook main.cpp)
我正在使用 Kdevelop4,并且想使用默认的 CMake c++ 项目。
我的计划是将我的应用程序划分为程序、几个共享库,并且我希望有一个单独的项目来构建单元测试(我打算使用谷歌测试)。
我有几个问题:
KDevelop4 生成的默认 CMakeLists.txt 如下所示:
project(kdevbook)
add_executable(kdevbook main.cpp)
1)对于共享库:
add_library(kdevbooklib SHARED source.cpp)
2)链接。
更新:
根 CMakeList.txt:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
PROJECT(MyGreatProject)
SET(LIBRARY_OUTPUT_PATH ${MyGreatProject_BINARY_DIR}/bin CACHE PATH
"Single output directory for building all libraries.")
SET(EXECUTABLE_OUTPUT_PATH ${MyGreatProject_BINARY_DIR}/bin CACHE PATH
"Single output directory for building all executables.")
MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
ADD_SUBDIRECTORY(MyGreatProjectLib)
ADD_SUBDIRECTORY(MyGreatProjectBin)
库 MyGreatProjectLib/CMakeLists.txt:
PROJECT(MyGreatProjectLib)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR})
add_library(MyGreatProjectLib SHARED source.cpp)
Bin MyGreatProjectBin/CMakeLists.txt
PROJECT(MyGreatProjectBin)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${MyGreatProjectLib_SOURCE_DIR})
add_executable(MyGreatProjectBin main.cpp)
target_link_libraries(MyGreatProjectBin MyGreatProjectLib)