加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖项 – CMake子目录依赖项

发布时间:2020-12-14 00:51:16 所属栏目:百科 来源:网络整理
导读:我是CMake的新手.事实上,我正在尝试通过Kdevelop4 widh C. 我习惯为我创建的每个命名空间创建子目录,即使所有源都必须编译并链接到单个可执行文件中.好吧,当我在kdevelop下创建一个目录时,它会使用add_subdirectory命令更新CMakeLists.txt并在其下创建一个新
我是CMake的新手.事实上,我正在尝试通过Kdevelop4 widh C.

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

我有根CMakeLists.txt如下:


project(gear2d)

add_executable(gear2d object.cc main.cc)

add_subdirectory(component)

在组件/我有我想要编译和链接的源以生成gear2d可执行文件.我怎么能做到这一点?

CMake常见问题解答有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} )

Top-dir CMakeLists.txt

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读