我用 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 -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid -lmingw32 -Wl,-subsystem,console -o tpv.exe tpv-excepciones。 tpv-conf.o tpv-main.o
它会生成一个 .exe 文件,该文件不是 linux 二进制文件。它在 wine 中运行正常,但在 Windows XP 中什么也不做。
阅读网页我在配置时添加了一些标志:
-Wl,--subsystem,console -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;
}
我已经尝试了我在网上找到的所有内容,但无济于事。
我错过了什么吗?