我是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 )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。