1、aux_source_directory指令
aux_source_directory(< dir > < variable >)
比如:
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这种方式就容易出问题,所有我很少使用这种方式。
2、file指令,我通常使用这种方式
比如:
file(GLOB ALL_SOURCE "*.cpp" "*.c")
file(GLOB ALL_HEAD "*.hpp" "*.h")
这样就将当前目录所有的源文件都放在了ALL_SOURCE变量中,所有的头文件放在了ALL_HEAD中。
另外,file里面的第一个参数若使用GLOB_RECURSE,不仅能包括当前目录的文件,也可以包括当前目录子目录下面的文件,比如:
file(GLOB_RECURSE ALL_SOURCE "*.cpp" "*.c")
file(GLOB_RECURSE ALL_HEAD "*.hpp" "*.h")
采用这种方式需要注意编译程序时,临时创建的build目录不要放在文件的同目录或者子目录下,因为cmake在编译过程中也会产生临时的cpp文件,这样这些临时文件又被包括进去,就会报错,所以需要在外层目录编译
本文发布于:2024-01-29 09:39:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170649236014373.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |