使用CLion,我的项目结构看起来像这样:
你会发现在根目录下有一个
我可以成功运行根级别的
这是问题所在。除此之外,我现在有兴趣——以非正式的、探索性的方式——测试项目中的一些代码。为此,作为一个初始示例,我创建了一个
问题在于我似乎无法执行
include
目录,一个src
目录,一个lib
目录,一个cmake-build-debug
目录,一个CMakeLists.txt
文件(见红箭头),以及一个tests
目录。该项目使用根级别的CMakeLists.txt
文件和各种源代码、头文件和外部文件来构建一个共享对象到lib
中。我可以成功运行根级别的
CMakeList.txt
文件并构建库,到目前为止一切顺利。这是问题所在。除此之外,我现在有兴趣——以非正式的、探索性的方式——测试项目中的一些代码。为此,作为一个初始示例,我创建了一个
test_nnls
目录,其中包含自己的CMakeLists.txt
(见黄色箭头)文件和一个test_nnls.cpp
文件。 test_nnls.cpp
中的代码创建了一些虚拟数据,调用了src/nnls.cpp
中的函数,并打印出结果。这里的构建过程只是创建了一个执行此操作的可执行文件。这种方法并不是要成为任何正式测试框架的一部分,我也不希望测试作为根级别构建的一部分运行。这只是我在整个项目中添加一个简单的测试程序,我想在需要时编译和独立运行它。我计划可能稍后实现一个正式的测试框架,但目前我不知道如何做到这一点,现在只需要打印一些简单的输出,以查看选择的代码是否正确工作。问题在于我似乎无法执行
CMakeLists.txt
文件(黄色箭头)以构建测试。在CLion中好像不可能使用cmake
设置测试程序的构建。我该如何组织所有这些来达到我的目的?谢谢。
add_subdirectory
调用中添加EXCLUDE_FROM_ALL
或者将所有内容隐藏在一个if (TESTING)
块后面,从主要构建中排除测试程序。 - undefined