我在NASM中编写程序,并希望将cmake用作构建引擎。
现在我以以下方式使用它:
execute_process (
COMMAND C:/NASM/x32/nasm.exe -f bin launch.asm -o ${CMAKE_CURRENT_BINARY_DIR}/Launch
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
但是有一个问题:launch.asm的构建会一直发生,即使它没有变化。仅当launch.as更改时,如何避免它并进行构建?
UPD1 :以下面的写法 vre 制作以下cmake文件-
CMAKE_MINIMUM_REQUIRED(VERSION 3.12.0)
project(Launch LANGUAGES ASM_NASM)
enable_language(ASM_NASM)
SET(ASM_DIALECT "-NASM")
set(CMAKE_ASM_NASM_FLAGS "-f bin")
add_executable(${PROJECT_NAME} launch.asm)
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE NASM)
我使用以下字符串生成源:
cmake .. -G"Visual Studio 15 2017"
cmake --build . --target ALL_BUILD
我收到问题:
CMake错误:未设置内部CMake变量所需的错误,cmake可能 无法正确构建。 缺少的变量是:CMAKE_EXE_LINKER_FLAGS
CMake错误:未设置内部CMake变量所需的错误,cmake可能 无法正确构建。 缺少的变量是: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMake错误:内部需要错误 CMake变量未设置,cmake可能无法正确构建。 ....
_NASM:组装launch.asm cmd.exe / D / C“ C:\ Users \ AeroSun \ AppData \ Local \ Temp \ tmp0a9e10beedeb4b9986b66e79724488ee.cmd” “ C:/NASM/x64/nasm.exe” -o Launch.dir \ Debug \ launch.obj -fwin32 -DCMAKE_INTDIR =“调试” -f bin“ L:\ DevProj \ Astra \ src \ Ker nel \ Launch \ Ix86x64 \ launch.asm”
Launch.dir \ Debug \ launch.obj:致命错误LNK1107
所以主要问题-cmake可以与汇编程序一起使用吗?如果可以的话,是否存在最小的 可行 示例?