我正在使用带有“Visual Studio 12 2013”生成器的CMake 3.0.1。
我将.asm文件添加到项目中。然后,cmake --build .
时发生了链接器错误LNK2026。
对于SAFESEH图像,LNK2026错误模块不安全。 http://msdn.microsoft.com/en-us/library/100ezk17.aspx
如果我手动添加项目属性如下,它可以正常工作。
< UseSafeExceptionHandlers>真< / UseSafeExceptionHandlers>
我可以在不更改生成的项目文件的情况下避免链接器错误吗?
这是一个无法使用生成的.vcxproj构建的简单项目。
extern void ExAsmCode();
int main(int argc, char** argv)
{
ExAsmCode();
return 0;
}
.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)
答案 0 :(得分:1)
将/safeseh
标志添加到来源:
set_source_files_properties(
my.asm
PROPERTIES
COMPILE_FLAGS "/safeseh"
)