使用Linux上的Qt为Windows创建可执行文件

时间:2009-06-08 06:12:41

标签: windows linux qt executable

是否可以在Linux上使用与Eclipse相同的Qt代码在Linux和Windows上创建可执行文件?或者是否有必要在我的Linux机器上安装Qt Creator?

5 个答案:

答案 0 :(得分:3)

如果你想在linux上构建一个windows二进制文件,你需要交叉编译。这意味着您需要安装Windows交叉编译器以及使用交叉编译器构建的链接库。对于基本的Qt程序,这意味着您至少需要一个交叉编译的Qt。

交叉编译与Eclipse或Qt Creator无关。我不认为两者都支持交叉编译开箱即用,但我想你可以让它们这样做。

答案 1 :(得分:0)

当然,可以在Linux中安装Qt Creator。可以使用相同的Qt代码在Linux / Win32 / Mac中进行编译。但是,您应该仅在以下位置使用特定于平台的代码:

#ifdef Q_OS_WIN32
    qDebug() << "Executable files end in .exe";
#endif

其他操作系统还有其他定义。如果你这样做,那么你是安全的,你可以打赌它是跨平台的代码。 : - )

请参阅http://www.qtsoftware.com/downloads并下载 Qt SDK for Linux / X11 。它包含Qt Creator,助手,设计师等等。

答案 2 :(得分:0)

前段时间我试图这样做,我在这里找到了有关交叉编译的资源:http://silmor.de/qtstuff.cross.php。最后我在Windows下编译了win32版本,因为时间不够,但它应该是可能的。

答案 3 :(得分:-1)

对于Eclipse,有一个official plugin

  

Qt Eclipse Integration for C ++

     

可以使用Eclipse插件   使用任何Qt版本创建程序   从4.1.0开始。

答案 4 :(得分:-3)

Windows中的

可执行文件在linux中不起作用,反之亦然。你可以这样做:

#ifdef Q_WS_X11
QString *OS=new QString("Linux");
std::cout << OS->toStdString() << std::endl;
#endif
#ifdef Q_WS_WIN
QString *OS=new QString("Windows");
std::cout << OS->toStdString() << std::endl;
#endif
#ifdef Q_WS_MACX
QString *OS=new QString("Mac");
std::cout << OS->toStdString() << std::endl;    
#endif