Assembly CMake:当项目包含VS2013的.asm MASM源时,如何避免链接错误?

Assembly CMake:当项目包含VS2013的.asm MASM源时,如何避免链接错误?,assembly,cmake,Assembly,Cmake,我正在使用带有“Visual Studio 12 2013”生成器的CMake 3.0.1 我将.asm文件添加到项目中。然后,链接器错误LNK2026在cmake--build.时发生 LNK2026错误对于SAFESEH映像是不安全的。 如果我按如下所示手动添加项目属性,它可以正常工作 真的 在不更改生成的项目文件的情况下,是否可以避免链接器错误 下面是一个无法使用生成的.vcxproj生成的简单项目 a、 c m、 asm CMakeLists.txt 将/safeseh标志添加到源:

我正在使用带有“Visual Studio 12 2013”生成器的CMake 3.0.1

我将.asm文件添加到项目中。然后,链接器错误LNK2026在
cmake--build.
时发生

LNK2026错误对于SAFESEH映像是不安全的。

如果我按如下所示手动添加项目属性,它可以正常工作

真的

在不更改生成的项目文件的情况下,是否可以避免链接器错误

下面是一个无法使用生成的.vcxproj生成的简单项目

a、 c m、 asm CMakeLists.txt
/safeseh
标志添加到源:

set_source_files_properties(
    my.asm
    PROPERTIES
    COMPILE_FLAGS "/safeseh"
)

您应该包含完整的错误消息。没有多少人能记住所有的LNK错误信息。msdn站点链接已经添加,因为我无法获得英语的实际错误信息。谢谢。@YasuoOhno我没有使用vs的经验,但我想问一下asm中的函数实现是否需要名称损坏?。model指令告诉我如何组装C命名和约定。因此,符号ExAsmCode将自动转换为_ExAsmCode。
.586
.model flat, c
MessageBoxA     proto STDCALL :dword, :dword, :dword, :dword

.data

MSG          DB 'masm', 0

.code

ExAsmCode PROC
    invoke MessageBoxA, 0, offset MSG, offset MSG, 0
    ret
ExAsmCode ENDP

end
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)

PROJECT(Ex)

ENABLE_LANGUAGE(ASM_MASM)

add_executable(Ex a.c m.asm)
set_source_files_properties(
    my.asm
    PROPERTIES
    COMPILE_FLAGS "/safeseh"
)