关于生成可执行文件时依赖的源文件在当前目录及当前目录子目录中的解决办法:





aux_source_directory  (./ EXE_SRC)中只能将当前目录中的源代码文件添加到变量 EXE_SRC中,如果最终要生成的文件还依赖与当前目录中子目录里面的源代码文件时,可以用如下的方法





list命令



list(APPEND SRC_LIST a.cpp b.cpp ) list(REMOVE_ITEM SRC_LIST a.cpp )




# 假设有如下文件目录和源文件 .


./Folder



    |



    + --- a.cpp



    + --- b.cpp



    + --- c,cpp



    |



    + --- other(文件夹)



            |



            + --- d.cpp



            + --- e.cpp






#--------------------------------------------------------------------




#  若该动态库的生成不止依赖于当前目录下的所有源文件,还依赖该目录下



#  子目录 (  假设为  other) 下的源文件,则做如下处理:



aux_source_directory  (./ EXE_SRC )        #  将当前目录(不包含子目录)下所有源文件保存在变量  SRC_LIST  中



aux_source_directory  (./other OTHER_SRC)   #  将当前目录子目录  other  下的源文件保存在变量  OTHER_SRC_LIST 中



list ( APPEND  EXE_SRC  ${OTHER_SRC} )         #  将  OTHER_SRC_LIST  添加到 SRC_LIST  中




#--------------------------------------------------------------------






#  根据变量 MODEL_SRC  (代表当前目录及子目录下的所有源文件)



#  生成一个动态库  MODEL_dll (  SHARED  代表动态库)



add_library  ( EXE _dll  SHARED  ${ EXE_SRC } )


关于生成可执行文件时依赖的源文件在当前目录及当前目录子目录中的解决办法:





aux_source_directory  (./ EXE_SRC)中只能将当前目录中的源代码文件添加到变量 EXE_SRC中,如果最终要生成的文件还依赖与当前目录中子目录里面的源代码文件时,可以用如下的方法





list命令



list(APPEND SRC_LIST a.cpp b.cpp ) list(REMOVE_ITEM SRC_LIST a.cpp )




# 假设有如下文件目录和源文件 .


./Folder



    |



    + --- a.cpp



    + --- b.cpp



    + --- c,cpp



    |



    + --- other(文件夹)



            |



            + --- d.cpp



            + --- e.cpp






#--------------------------------------------------------------------




#  若该动态库的生成不止依赖于当前目录下的所有源文件,还依赖该目录下



#  子目录 (  假设为  other) 下的源文件,则做如下处理:



aux_source_directory  (./ EXE_SRC )        #  将当前目录(不包含子目录)下所有源文件保存在变量  SRC_LIST  中



aux_source_directory  (./other OTHER_SRC)   #  将当前目录子目录  other  下的源文件保存在变量  OTHER_SRC_LIST 中



list ( APPEND  EXE_SRC  ${OTHER_SRC} )         #  将  OTHER_SRC_LIST  添加到 SRC_LIST  中




#--------------------------------------------------------------------






#  根据变量 MODEL_SRC  (代表当前目录及子目录下的所有源文件)



#  生成一个动态库  MODEL_dll (  SHARED  代表动态库)



add_library  ( EXE _dll  SHARED  ${ EXE_SRC } )