Articles of qmake

Qt版本无效

我正在使用Linux,我已经安装了Qt Creator 2.5.2,Qt库4.7.4和4.4.3。 我不能直接安装二进制文件,因为版本之间不兼容。 Qt 4.7.4和Qt 4.4.3的安装过程都是一样的。 我面临的问题是Qt Creator认识到Qt 4.7.4,而不是Qt 4.4.3,错误 Qt版本无效:无法确定Qt安装的二进制文件的path,可能path错误。 那么每个库都安装在/home/$username/qt/Qt-$version 。 当我手动编译一个项目 cd directory /home/$username/qt/Qt-4.4.3/qmake $PATHPRO make 一切工作的魅力,我可以运行应用程序。 我试过了什么? 重新编译Qt-4.4.3 检查文件夹权限 重新启动Qt Creator 在我的桌面上粉碎我的头 有什么想法吗? 操作系统是SUSE Enterprise 11-32位。

qmake .pro文件未正确parsing以生成LD_LIBRARY_PATH

我一直在努力在最后几天了解如何qmake作品买我卡住了。 我想要一个具有以下结构的项目: 根 箱子 testjson LIB libjson.so SRC testjson.cpp 我想要的只是testingjson库。 我已经在Qt Creator 2.3.0中创build了一个新的空项目,并设置了所有的设置,以便可执行文件运行。 testing了我想要的并closures了应用程序。 后来,当我再次打开Qt Creator的时候,我加载了.pro文件,当我尝试运行这个项目的时候,我得到这个消息:“没有指定可执行文件”。 :| 在这种情况下,我去了项目选项卡,并手动select可执行文件,但正如所料,当我试图运行它,我得到这个消息“加载共享库时出错:libjson.so:无法打开共享对象文件:没有这样的文件或目录“。 因为没有设置LD_LIBRARY_PATH(这就像我从cli运行它),所以期待。 它看起来像.pro文件没有被正确parsing,因为第一次,在我select运行选项卡的项目选项卡上,我会看到一条消息:“parsing.pro文件”,然后运行configuration将得到填充,并且变灰,所以这意味着在parsing.pro文件之后,Qt Creator添加了LD_LIBRARY_PATH。 现在我的任务是:为什么第一次正确parsing.pro文件? 这是.pro文件: !include(../../common.pri){ error(Couldn't find the common.pri file!) } TEMPLATE = app SOURCES += testjson.cpp CONFIG += console TARGET = testjson CONFIG(release, debug|release) { DESTDIR = $$BinaryDir/Release } else { DESTDIR = $$BinaryDir/Debug } […]

在QMake中设置RPATH命令

我有一个Linux Qt程序。 如果它们存在,我希望它优先使用可执行文件目录中的(dynamic)Qt库,否则使用系统的Qt库。 RPATH救援。 我将这行添加到qmake的.pro文件中: QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN\'' 并用readelf看结果可执行文件我看到: 0x000000000000000f (RPATH) Library rpath: [$ORIGIN:/usr/local/Trolltech/Qt-5.2.0/lib] 0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN:/usr/local/Trolltech/Qt-5.2.0/lib] 看起来是正确的,但ldd显示它使用的是系统版本: libQt5Core.so.5 => /usr/local/Trolltech/Qt-5.2.0/lib/libQt5Core.so.5 (0x00007f2d2fe09000) 如果我手动编辑qmake生成的Makefile以交换两个rpath的顺序,那么$ ORIGIN在/ usr / local / …之后,我得到正确的行为: 0x000000000000000f (RPATH) Library rpath: [/usr/local/Trolltech/Qt-5.2.0/lib:$ORIGIN] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/Trolltech/Qt-5.2.0/lib:$ORIGIN] libQt5Core.so.5 => ./libQt5Core.so.5 (0x00007fb92aba9000) 我的问题是如何qmake构造最终的LFLAGSvariables。 我无法弄清楚如何使它添加($ ORIGIN)在系统库之后。 有任何想法吗?

Qmake中win64configuration的标识符

Qmake项目文件中是否有“win64”标识符? Qt Qmake高级文档除了unix / macx / win32以外没有提到。 到目前为止,我试过使用: win32:message("using win32") win64:message("using win64") amd64:message("using amd64") 结果总是“使用win32”。 我必须为x32和x64项目使用单独的项目文件,以便它们能够针对正确的库进行编译? 有没有其他方法可以识别32位和64位环境?

qmake命令将文件和文件夹复制到输出目录

我正在开发一个应用程序,应该build立在Windows,Linux和OS X使用QtCreator和Qt 5.3。 我想要将文件夹中的所有文件和子文件夹复制到输出文件夹中。 我已经为Linux和OS X工作,但不适用于Windows。 这是我的.pro文件的相关部分: win32 { PWD_WIN = $${PWD} DESTDIR_WIN = $${OUT_PWD} copyfiles.commands = $$quote(cmd /c xcopy /S /I $${PWD_WIN}\copy_to_output $${DESTDIR_WIN}) } macx { copyfiles.commands = cp -r $$PWD/copy_to_output/* $$OUT_PWD } linux { copyfiles.commands = cp -r $$PWD/copy_to_output/* $$OUT_PWD } QMAKE_EXTRA_TARGETS += copyfiles POST_TARGETDEPS += copyfiles 我在Windows上得到的错误是“无效的参数数量”。

Qt错误:未find过程条目

我正在Qt 5.6.1中做一个项目。 当我在Qt Creator中运行它时,它运行完美。 但是当我在文件夹中运行它时,它显示: 程序入口点?0QVariant @@ QAE @ ABVQString @@@ Z不能位于DLL Qt5Core.dll中。 我该如何解决?