链接器工具警告 LNK4247
入口点“decorated_function_name”已有线程属性;已忽略“attribute”
使用 /ENTRY(入口点符号)指定的入口点具有线程属性,但还指定了 /CLRTHREADATTRIBUTE(设置 CLR 线程属性),后者具有不同的线程模型。
链接器忽略了使用 /CLRTHREADATTRIBUTE 指定的值。
若要解决此警告,请执行以下操作:
从生成中删除 /CLRTHREADATTRIBUTE。
从源代码文件中删除属性。
删除源中的属性和生成中的 /CLRTHREADATTRIBUTE,并接受默认的 CLR 线程模型。
更改传递给 /CLRTHREADATTRIBUTE 的值,使其与源中的属性一致。
更改源中的属性,使其与传递给 /CLRTHREADATTRIBUTE 的值一致。
下面的示例生成 LNK4247
// LNK4247.cpp
// compile with: /clr /c
// post-build command: link /CLRTHREADATTRIBUTE:STA LNK4247.obj /entry:functionTitle /SUBSYSTEM:Console
[System::MTAThreadAttribute]
void functionTitle (){}