C++程序使用 mingw 在 Linux 上交叉编译在 MSy2 中工作,但不能直接在 Windows 中工作
C++ program cross compile on linux using mingw works in msys2 but not directly in windows
我有一个奇怪的问题。我有一个依赖于Qt,Zlib和ruby的程序,我使用mxe(x86_64-w64-mingw32.shared(在ubuntu上交叉编译。
我使用的 ruby 不包含在 mxe 包中,但使用相同的工具链进行了编译。
然后我有一个安装了 msys10 的 Windows 64 位测试虚拟机2。当我在 Linux 或 Windows 上的 msys2 中从 wine 运行程序时,它可以正常工作。但是当我直接从资源管理器启动它时,程序会按预期启动,但在运行时ruby_setup()
失败(我以前用过RUBY_INIT_STACK;
,但没有ruby_sysinit(&argc, &argv);
因为我在程序中途迷路了。
我的程序提供的 dll 列表是(前缀为 agathe_ 表示它们是由我编码的,ruby 初始化是在 agathe_ruby.dll 年完成的(:
agathe_config.dll
agathe_models.dll
agathe_modules.dll
agathe_params.dll
agathe_ressources.dll
agathe_ruby.dll
agathe_utils.dll
agathe_views.dll
agathe_widgets.dll
libbz2.dll
libeay32.dll
libffi-6.dll
libfreetype-6.dll
libgcc_s_seh-1.dll
libgdbm-3.dll
libgdbm_compat-3.dll
libglib-2.0-0.dll
libgmp-10.dll
libharfbuzz-0.dll
libiconv-2.dll
libintl-8.dll
libjasper-1.dll
libjpeg-9.dll
liblcms2-2.dll
liblzma-5.dll
libmng-2.dll
libpcre16-0.dll
libpcre-1.dll
libpng16-16.dll
libstdc++-6.dll
libtiff-5.dll
libwebp-5.dll
libwebpdemux-1.dll
libyaml-0-2.dll
libzip-4.dll
qsvgicon.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Svg.dll
Qt5Widgets.dll
ssleay32.dll
x64-msvcrt-ruby230.dll
zlib1.dll
有没有人提出同样的问题并意识到解决它的方法?
好的,我找到了解决这个问题的方法...我不知道具体如何,但程序是:
- 将调用移动到函数指针解析后未到达的某个位置
ruby_setup()
。 -
make clean
- 然后重新运行完整的交叉编译过程。
相关文章:
- std::unique_ptr 在 GCC 中工作,但不能在 Visual Studio 中编译
- 声明C++具有动态大小的数组类型在 Linux 中工作正常,但不能在 Windows 中工作
- std::remove() 按预期处理文字,但不能与取消引用的迭代器一起工作
- C++:返回本地对象,但不能正常工作
- 静态 constexpr 函数在模板结构中工作,但不能在结构中工作.为什么?
- C++程序使用 mingw 在 Linux 上交叉编译在 MSy2 中工作,但不能直接在 Windows 中工作
- 应用在 API 25 到 21 下工作,但不能在 API 19 下工作
- 实现快速排序,几乎可以工作但不能
- 有本地主机名,可以在windows上工作,但不能在Linux上工作
- 从 zip 加载到 SDL,代码在 x64 中工作,但不能在 x86 中工作
- 问题.所有功能都可以在发布文件夹中工作,但不能在程序文件中工作
- 这个模板"specialization"代码在做什么,为什么它可以编译但不能按预期工作?
- 简单的OpenCV命令可以在调试模式下工作,但不能在发布模式下工作
- Reference_wrapper: Push_back可以工作,但不能赋值
- c++二叉树可以在CentOS 6中工作,但不能在Mac OSX Mavericks中工作
- Regex可以在Regex测试器上工作,但不能在c++中工作
- c++ /OpenGL: vao单独工作,但不能一起工作
- 代码只能在Visual Studio Debug中工作,但不能在发布模式和.exe中工作
- CEF上的WebRTC(getUserMedia)不工作.但它能在Chrome上运行.任何想法
- 我的程序应该摆脱不是数字的字符,但不能完全工作,关于我做错了什么有什么想法吗?