gpt4 book ai didi

dependencies - CMake子目录依赖

转载 作者:行者123 更新时间:2023-12-03 20:28:15 34 4
gpt4 key购买 nike

我是CMake的新手。实际上,我正在通过Kdevelop4 widh C ++进行尝试。

我习惯为创建的每个命名空间都创建子目录,即使必须将所有源代码编译并链接到单个可执行文件中。好吧,当我在kdevelop下创建目录时,它会使用add_subdirectory命令更新CMakeLists.txt并在其下创建一个新的CMakeLists.txt,但是仅此一项并不会将其下的源添加到编译列表中。

我的根目录为CMakeLists.txt,如下所示:


项目(gear2d)

add_executable(gear2d object.cc main.cc)

add_subdirectory(组件)


在component /下,我具有要编译和链接以生成gear2d可执行文件的源。我该怎么做?

CMake FAQ有this条目,但是如果那是答案,我宁愿使用普通的Makefile。

有办法吗?

最佳答案

添加子目录只不过是向CMake指定要进入该目录并在该目录中查找另一个CMakeLists.txt。您仍然需要使用add_library使用源文件创建一个库,然后使用target_link_libraries将其链接到您的可执行文件。类似于以下内容:

在子目录CMakeLists.txt中

set( component_SOURCES ... ) # Add the source-files for the component here
# Optionally you can use file glob (uncomment the next line)
# file( GLOB component_SOURCES *.cpp )below

add_library( component ${component_SOURCES} )


顶级目录CMakeLists.txt

project( gear2d )
add_subdirectory( component )
add_executable( gear2d object.cc main.cc )
target_link_libraries( gear2d component )

关于dependencies - CMake子目录依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628927/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com