繁体   English   中英

Wine上的线程程序崩溃(Windows本机OK)

[英]Threaded program crash on Wine (Windows native OK)

我想运行一个在Windows 7上开发并使用Visual Studio 2013在Ubuntu 14.04上使用Wine 1.6编译的C ++程序。

不出所料,我遇到了很多错误,因此我尝试了一些简单的方法:

#include <iostream>

int main() {
    std::cout << "Hello main\n";
}

我链接到C ++运行时库的静态版本(“ Runtime Library设置为/MT ),因此不需要任何.dll。 这很好用。

在此处输入图片说明

但是随后我添加了一些非常简单的线程:

#include <iostream>
#include <thread>

void call_from_thread() {
    std::cout << "Hi from thread\n";
}

int main() {
    std::thread t(call_from_thread);
    t.join();
    return 0;
}

这个程序可以在我的Windows机器上编译并正常运行,但是通过Wine在Ubuntu上运行它却给了我一些难看的错误: 在此处输入图片说明

单击“显示详细信息”不会显示任何内容并退出Wine,但是单击“关闭”会吐出更多输出: 在此处输入图片说明

我再次尝试,这次更改为链接到C ++运行时库的共享版本(将Runtime Library设置为/MD ),然后从Windows机器上的Wine的C:/Windows/SysWOW64目录中msvcp120.dllmsvcr120.dllmsvcp120.dll 。使用。 但是我得到了几乎相同的错误消息。

通过Google搜索表明 Wine支持线程化,所以我不知道为什么我的程序会失败。

升级到Wine的最新版本(当前为1.73.33)并使用干净的wineprefix使该线程示例正常工作。 自2013年7月发布Wine 1.6以来,我就应该期待这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM