djc*_*uch 2 multithreading windows-8 windows-runtime c++-cx
我有一个Windows 8的WinRT应用程序,它包含几个C++静态库和一个WinRT本机静态C++库.它没有链接,因为它抱怨与线程模型库相关的多重定义符号:
vccorlibd.lib(tmmta.obj) : error LNK2005: "int __abi___threading_model" (?__abi___threading_model@@3HA) already defined in vccorlibd.lib(tmdefault.obj)
fatal error LNK1169: one or more multiply defined symbols found
Run Code Online (Sandbox Code Playgroud)
请注意,它正在尝试使用默认的踩踏模型lib(tmdefault)链接MTA线程模型lib(tmmta).
我无法在项目属性中找到任何设置来更改此设置.我发现最接近的是CLR线程属性,但更改此设置无效.我不知道我的解决方案中的哪个子项目正在使用哪个线程模型.
如何以及在何处可以查看和更改线程模型设置?
谢谢!
小智 5
这是关于你的问题的答案.我有同样的问题 :)
编辑:
可能这是因为你有main()函数或/和你[Platform::MTAThread]在WinRT静态库中定义(巫婆创建MTA符号).现在可执行代码不知道应该如何初始化,因为可执行文件对你的声明一无所知.
您可以将该main()函数移动到您的可执行项目或(在我的情况下工作)确保您#include标头到您声明主函数的对象,然后链接器可以看到它并且不会复制符号.
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |