我有一个目录结构如下:
root
libA
CMakeLists.txt
ClassA.cpp
libB
CMakeLists.txt
ClassB.cpp
sharedCode
enums.h
AbstractClass.h
在CMake文件中如何包含sharedCode目录?以便classA(在libA中)和classB(在libB中)都可以使用enums. h和AbstractClass.h?
在CMakeLists.txt中,我尝试使用:
add_subdirectory(../sharedCode)
但它给出了误差
add_subdirectory not given a binary directory but the given source
directory "/root/sharedCode" is not
a subdirectory of "root/libA". When
specifying an out-of-tree source a binary directory must be explicitly
specified.
1条答案
按热度按时间2uluyalo1#
正如错误所述,当指定当前树之外的相对源目录时,还必须提供第二个参数,该参数指定生成的二进制文件将放置的目录。
以下是
add_subdirectory
的文档:binary_dir指定放置输出文件的目录。如果它是相对路径,则将根据当前输出目录进行计算,但它也可以是绝对路径。如果未指定binary_dir,则在展开任何相对路径之前,将返回source_dir的值。将使用(典型用法). CMakeLists。txt文件,CMake将立即处理该文件,然后在当前输入文件中继续处理中设置网格颜色.