我在Windows上使用Visual Studio 2010.我有一堆.cpp文件和一个我想要一起编译的.asm文件。
现在我正在执行一个自定义命令来单独编译.asm,如下所示:
#windows 64 bit builds need an asm file that needs to be compiled separately
if (MSVC AND CMAKE_CL_64)
add_custom_command(TARGET MYPROJECT
PRE_BUILD
COMMAND "$ENV{VCInstallDir}/bin/x86_amd64/ml64" /c /W2 /nologo /errorReport:none
/Fo${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.dir/Debug/
#/Fo"C:/MYPROJECT/Build/Main_ms100_64/MYPROJECT.dir/Debug/"
$CSrcDir}/masm64.asm
COMMENT "Building asm file")
endif()
这会将.obj文件作为其他obj文件放在正确的位置,但链接器似乎并未包含它。如何使链接器成为masm64.obj文件?
作为替代解决方案,我尝试将文件的源属性设置为" LANGUAGE ASM"但它仍然没有编译它。
答案 0 :(得分:0)
我通常在文件本身上设置自定义构建工具。有一个复选框,表明输出是否参与构建。根据我的经验,我发现如果我检查了那个盒子,并且汇编器输出到正确的中间目录。我发现如果我使用自定义命令,我必须明确地将目标文件添加到链接器命令行。