AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1242248
Accepted
Garvit Joshi
Garvit Joshi
Asked: 2020-05-22 10:55:00 +0800 CST2020-05-22 10:55:00 +0800 CST 2020-05-22 10:55:00 +0800 CST

使用 mingw-w64 编译文件

  • 772

我有一个程序

#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
    cout<<"Hello World!! This Program Is made in win32 API\n";
    return 0;
}

但是当我编译这个程序时

x86_64-w64-mingw32-g++ Hello.cpp -o hello64.exe

并运行它

wine64 hello64.exe

我收到 2 个错误

0009:err:module:import_dll Library libstdc++-6.dll (which is needed by L"Z:\\home\\garvit\\C++\\hello64.exe") not found
0009:err:module:LdrInitializeThunk Importing dlls for L"Z:\\home\\garvit\\C++\\hello64.exe" failed, status c0000135

我正在使用 Ubuntu 20.04,而且我是 Linux 新手。

wine compiling directory c++ mingw32
  • 2 2 个回答
  • 3597 Views

2 个回答

  • Voted
  1. Best Answer
    Siep
    2020-05-22T12:02:59+08:002020-05-22T12:02:59+08:00

    您需要将此 libstdc++-6.dll 从您的 mingw 安装(应该在 /usr/lib/gcc/x86-w64-mingw32/9.3-win32/ 中)复制到与您的 exe 文件相同的目录中。我希望您会收到关于 libgcc_s_sjlj-1.dll 的类似消息,您还需要复制该消息。

    我在 Windows VM 上使用 32 位进行了测试,但我希望这不会产生影响。

    • 2
  2. Akib Azmain
    2020-10-11T03:51:17+08:002020-10-11T03:51:17+08:00

    您收到错误是因为 Wine 不知道这些库在哪里可用。你有两个选择:

    • 将所有需要的库放在同一个目录中
    • 静态链接所需的库

    如果您没有许可问题(例如libstdc++,使用 LGPL 来链接该库,如果您分发它,您需要在 LGPL 下许可您的程序),您应该静态链接。对于一个 hello world 程序,编译命令是这样的:

    x86_64-w64-mingw32-g++ hello.cpp -static-libstdc++ -static-libgcc -o hello
    

    另一种选择是将所有库放在同一目录中。/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/因此,只需从or复制这些文件/usr/lib/gcc/x86-w64-mingw32/9.3-win32/,您的程序就应该运行良好。

    • 0

相关问题

  • 如何安装 Windows 软件或游戏?

  • 如何让 .so 文件显示在包中?

  • 如何让 .NET 2.0 SP2 在 wine 中运行?

  • 为自定义 PPA 修补 Wine 的正确方法是什么?

  • 如何在 Ubuntu 中运行 Windows XP

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve