使用Eclipse能否在Linux上为Linux和Windows创建可执行文件,使用相同的Qt代码?或者必须在Linux机器上安装Qt Creator?
使用Eclipse能否在Linux上为Linux和Windows创建可执行文件,使用相同的Qt代码?或者必须在Linux机器上安装Qt Creator?
如果你想在Linux上构建Windows二进制文件,你需要进行交叉编译。这意味着你需要安装一个Windows交叉编译器,以及使用该交叉编译器构建的链接库。对于一个基本的Qt程序,这意味着你至少需要一个交叉编译的Qt。
交叉编译与Eclipse或Qt Creator无关。我认为两者都不支持开箱即用的交叉编译,但我想你可以让它们支持。
#ifdef Q_OS_WIN32
qDebug() << "Executable files end in .exe";
#endif
其他操作系统也有其他的定义。如果你这样做,你就是安全的,而且可以保证它是跨平台的代码。:-)
请参考http://www.qtsoftware.com/downloads并下载Linux/X11的Qt SDK。它包含了Qt Creator、Assistant、Designer等工具。
前段时间我尝试做这件事,然后在这里找到了有关交叉编译的资源:http://silmor.de/qtstuff.cross.php。最终我在Windows下编译了win32版本,因为时间不够,但应该是可行的。
对于Eclipse,有一个官方插件。
C++的Qt Eclipse集成
可以使用Eclipse插件来创建使用任何Qt版本自4.1.0以来的程序。
在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