[英]Compiling and linking .asm file to C++ code
我在Windows上使用Visual Studio2010。我有一堆.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”,但仍未编译。
我通常在文件本身上设置自定义生成工具。 有一个复选框指示输出是否参与构建。 根据我的经验,我发现如果选中该框,则汇编器将输出到正确的中间目录。 我发现如果使用定制命令,则必须将目标文件明确添加到链接器命令行中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.