【问题标题】:KDevelop4 : Setting up a project using cmakeKDevelop4:使用 cmake 设置项目
【发布时间】:2011-07-31 16:20:27
【问题描述】:

我正在使用 Kdevelop4,并希望使用默认的 CMake c++ 项目。

我的计划是将我的应用程序划分为程序、几个共享库,并且我希望有一个单独的项目来构建单元测试(我打算使用 google 测试)。

我有几个问题:

  1. 如何修改默认 cmake 文件以获得共享库,而不是可执行文件?
  2. 如何将google测试框架与cmake集成?

KDevelop4 生成的默认 CMakeLists.txt 如下所示:

project(kdevbook)

add_executable(kdevbook main.cpp)

【问题讨论】:

    标签: c++ linux cmake project-setup kdevelop4


    【解决方案1】:

    1) 对于共享库:

    add_library(kdevbooklib SHARED source.cpp)
    

    More info.

    2) Link.

    更新:

    根 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)
    

    【讨论】:

    • 再问一个问题。如果我有 3 个项目:第一个用于库,第二个用于单元测试,第三个用于可执行文件,我该如何建立依赖关系?我希望第二和第三依赖于第一。顺便说一句,谢谢你的回答
    • 是否可以将这样的依赖项添加到 cmake 中?
    • 是:查看修改后的答案。
    猜你喜欢
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多