我有一个CMakeLists.txt和一些工具链文件。在我的CMakeLists.txt中,我有一条语句来生成.elf可执行文件。然后,通过一些命令(使用add_custom_target,来自here的代码)运行此可执行文件,该命令生成一个.gba文件,这是我要启动的REAL可执行文件。现在的问题是,我对VS Code使用了cmake扩展,并且目标没有启动显示(可能是因为它不被视为可执行文件)。 我尝试了add_executable(target.gba IMPORT),但是没有用。 在CMakeLists.txt中:
add_executable(target.elf ${SOURCE_FILES} ${INCLUDE_FILES} ${EXTRA_DATA_FILES}) # Create the elf file
add_gba_executable(target.elf) # Generate the .gba from the .elf
在工具链文件中:
function(add_gba_executable target)
get_filename_component(target_name ${target} NAME_WE)
add_custom_target(${target_name}.gba ALL SOURCES
COMMAND ${OBJCOPY} -v -O binary ${target} ${target_name}.gba
COMMAND ${GBAFIX} ${target_name}.gba
DEPENDS ${target}
VERBATIM
)
set_target_properties(${target} PROPERTIES LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Map=${target_name}.map -specs=gba.specs")
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${target_name}.gba)
endfunction()
我如何告诉CMake add_custom_target的结果也是可执行文件?我尝试了add_executable(target.gba IMPORT),但这没用。