【发布时间】:2014-12-23 20:48:46
【问题描述】:
我在 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”,但仍未编译。
【问题讨论】:
-
添加 .asm 文件时我总是忘记做的事情是右键单击项目(不是解决方案)并选择“构建自定义”并选中“masm”。如果做不到这一点,我想你可以去链接器/输入并将文件添加到“附加依赖项”。
-
你要么爱这个人,要么恨他。他有一百多个关于这个和相关主题的教程。转到这里:youtube.com/playlist?list=PL0C5C980A28FEE68D(希望我正确剪切和粘贴)
标签: c++ visual-studio-2010 assembly cmake