linux使用mingw交叉编译exe文件,windows无法运行 |
您所在的位置:网站首页 › 魔力时代再也玩不了了吗 › linux使用mingw交叉编译exe文件,windows无法运行 |
环境说明
linux:Ubuntu 20.04.1 LTS (win10子系统) windows:win10 编译器:x86_64-w64-mingw32-g++ shell:windows powershell, cmd, linux shell 文件:linux下文件地址 /home/descosmos/cpp/test.cpp 通过linux访问windows桌面: cd /mnt/c/User/kingsoft/Desktop 事件还原在linux中有如下文件: test.cpp #include #include using namespace std; int main(){ vector arr(2); arr1[0] = 2; printf("arr[0]: %d.\n", arr[0]); return 0; }编译过程: x86_64-w64-mingw32-g++ test.cpp -o cmd.exe // 将cmd.exe复制到windows环境中 cp cmd.exe /mnt/c/User/kingsoft/Desktop在powershell中执行cmd.exe,结果为: 就是缺少了libstdc+±6.dll和libgcc_s_seh-1.dll文件,使得cmd.exe在windows环境中无法加载动态库,执行出现问题。 问题解决在x86_64-w64-mingw32-g++的安装目录下查找这两个文件: which x86_64-w64-mingw32-g++
再在powershell下执行cmd.exe可以看见: 对于linux和windows交叉编译的环境而言,版本库的正确与否是十分重要,对于要使用静态库的exe文件而言问题不大,但对于要使用动态库dll的exe文件而言,一定要在执行环境下看看是否存在相应的dll文件。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |