需求

正常情况下我们的项目各个子项目都在一个总的项目根目录下,但这次就需要使用外部的文件夹, 一个求解器文件夹(不动其代码),一个测试用例的相关项目,测试用例调用求解器内部代码进行相关测试。

处理过程

add_subdirectory命令,可以将指定的文件夹加到build任务列表中。下面是将与当前项目平级的一个目录下的子目录用add_subdirectory命令加进来的CMakelists.txt脚本片段 :

add_subdirectory(../test/test)

然后执行CMakeList.txt脚本时报错了:

屏幕截图 2022-06-13 114712.png

报错原因也很明确,因为要添加的这个文件夹不是当前项目的子目录。最后一句指明了方向:要指定一个外部的文件夹必须显式指定。
但怎么显式指定?
下面是add_subdirectory命令的官方说明:

官方文档

add_subdirectory有一个 binary_dir参数,这个参数用来指定source_dir在输出文件夹中的位置,如果没有指定的时候,就用source_dir的值。
如果要添加外部文件夹,binary_dir就必须指定。所以上面的代码修改如下:

add_subdirectory(../test/test test.out)

再执行CMakeList.txt正常通过,下图红框标出就是cassdk子目录下CMakeLists.txt的执行输出。


本文由 管理员 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论