我对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)
在component/下,我有我想要编译和链接以生成gear2d可执行文件的源代码。我该如何做到这一点?
CMake FAQ有这篇文章,但如果那是答案,我宁愿使用普通的Makefiles。
有没有办法做到这一点?
target_link_libraries
期望从子目录的CMakeLists.txt中获取目标名称“component”。由于这至少是我在网络上找到的第三个子目录和链接项具有相同名称的示例,我有点困惑,不得不自己尝试一下...(如果子目录名称也适用于target_link_libraries
- 但它不行;顺便说一下,您也不能使用在子目录中定义的${...}别名...) - yau