我有一个项目,该项目具有自定义脚本,这些脚本可以自动生成具有非标准扩展名的C ++代码文件(.acpp和.ah分别用于生成的源文件和标头)。但是,此代码未编译,因为在编译时出现链接器错误,当将文件从.acpp重命名为.cpp时,链接器错误会消失。
set(HEADER_FILES
normal.h
foo.ah
)
set(SOURCE_FILES
normal.cpp
foo.acpp
)
add_library(lib STATIC ${SOURCE_FILES} ${HEADER_FILES})
在以上情况下,仅normal.cpp会被编译,如果它调用foo.acpp中定义的函数,则会出现链接器错误。
我尝试使用:
list(APPEND CMAKE_CXX_SOURCE_FILE_EXTENSIONS acpp)
SET_SOURCE_FILES_PROPERTIES(${SOURCE_FILES} PROPERTIES LANGUAGE CXX)
add_definitions("-x c++")
set_target_properties(lib PROPERTIES LINKER_LANGUAGE CXX)
并查看了以下相关问题: