繁体   English   中英

Mingw32交叉编译的控制台应用程序在Windows XP上没有做任何事情

[英]Mingw32 cross compiled console application doesn't do anything on Windows XP

我使用Mingw32在Linux(Ubuntu 11.04)中编译了一个小应用程序,它在Wine中运行正常,但在Wuindows上没有任何作用(尽管它运行)。

配置:

./configure --host = i586-mingw32msvc --target = i586-mingw32msvc --build = i686-linux

(我尝试过没有--target ,没有--build ,结果相同。)

编译:

i586-mingw32msvc-g ++ -DHAVE_CONFIG_H -I。 -I .. -DLOG_DOMAIN = \\“tpv \\” - I .. -DWINVER = 0x0400 -D_ WINDOWS _ -Wall -g -Wl, - subsystem,console -mconsole -mms-bitfields -g -O2 -MT tpv- excepciones.o -MD -MP -MF .deps / tpv-excepciones.Tpo -c -o tpv-excepciones.o

链接:

/ bin / bash ../libtool --tag = CXX --mode = link i586-mingw32msvc-g ++ -Wall -g -Wl, - subsystem,console -mconsole -mms-bitfields -g -O2 -lstdc ++ -lgcc - lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lctctl32 -lctl3d32 -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid -lmingw32 -Wl,-subsystem,console -o tpv.exe tpv-excepciones.o tpv-co​​nf.o tpv-main.o

它生成一个不是Linux二进制文件的.exe文件。 它在葡萄酒中运行正常,但在Windows XP中无效。

阅读网页我在配置时添加了一些标志:

-Wl, - 子系​​统,控制台-mconsole -mms-bitfields

这是该计划:

#include <windows.h>
#include "main.hh"


int main (int argc, char ** argv)
{
    MessageBox (0, "Joder!", "Ermmm...", MB_OK);

    //utils::conf c ("configuracion.3D");

    //std::cout << "Valor de 'no': '" << c["TEXTO_ERROR"] << "'" << std::endl;

    //std::cout << "..." << std::endl;

    return 0;
}

我已经尝试过我在网上找到的所有内容都无济于事。

我错过了什么吗?

请务必将应用程序(在PE32可执行文件头中,我猜)标记为“GUI”应用程序,而不是控制台。 也就是说,使用-mwindows和mingw(而不是-mconsole )。 使用这个简单的命令(在Ubuntu 15.10上至少安装了deb软件包gcc-mingw-w64-i686 ),你的测试源编译得很好(然后就可以了): i686-w64-mingw32-gcc -o test.exe test.c -mwindows

我远不是一个Windows专家(甚至不是一个用户太多......),但据我所知,Windows有一个严格的观点,即应用程序是基于控制台或GUI,你可以使用-mwindows开关来设置这是“GUI应用程序”。 我认为,使用一个简单的对话框,你已经尝试过需要基于GUI的应用程序,这可能是问题所在,你还没有这样做。 检查.exe的简单方法:

lgb@antares:~$ file test.exe
test.exe: PE32 executable (GUI) Intel 80386, for MS Windows

但请注意,GUI应用程序没有控制台,因此您不能只是printf()或其他stdio函数写入控制台,因为...您还没有控制台:)

暂无
暂无

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

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