Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CMake不识别标志-m32中找到QT4_Qt_Gcc_Cmake - Fatal编程技术网

在CMake不识别标志-m32中找到QT4

在CMake不识别标志-m32中找到QT4,qt,gcc,cmake,Qt,Gcc,Cmake,我尝试在x86_64平台(Fedora16)上构建x86应用程序。在这个应用程序中,我使用的是Qt,构建系统是cmake。 在CMakeLists.txt中,我使用: find_程序包(Qt4必需qtmain QtCore QtGui QtWebKit) include(${QT\u USE\u FILE}) 用于生成生成生成文件的cmake命令,如下所示: cmake-DCMAKE_CXX_FLAGS=“-fppermissive-m32” -DCMAKE_CXX_LINKER_PREFERE

我尝试在x86_64平台(Fedora16)上构建x86应用程序。在这个应用程序中,我使用的是Qt,构建系统是cmake。 在CMakeLists.txt中,我使用:

find_程序包(Qt4必需qtmain QtCore QtGui QtWebKit)

include(${QT\u USE\u FILE})

用于生成生成生成文件的cmake命令,如下所示:

cmake-DCMAKE_CXX_FLAGS=“-fppermissive-m32”
-DCMAKE_CXX_LINKER_PREFERENCE=“-m32”
-DCMAKE_EXE_LINKER_FLAGS=“-m32”
-DCMAKE_SHARED_LINKER_FLAGS=“-m32”

因此,编译链接器后无法找到兼容的Qt库。错误如下:

/usr/bin/ld:在搜索-lQtWebKit时跳过不兼容的/usr/lib64/libQtWebKit.so

没关系。在/usr/lib64库中有x64平台。所需的库位于/usr/lib中,并且它们存在!但我不明白,为什么FindQt4不识别平台?这个脚本设置了以下变量:QT_LIBRARY_DIR、QT_LIBRARIES等等。这些变量设置为:

--QT\u LIBRARY\u DIR:/usr/lib64

--QT_库:优化/usr/lib64/libQtWebKit.so;调试/usr/lib64/libQtWebKit_debug.so;优化/usr/lib64/libQtXmlPatterns.so;调试/usr/lib64/libQtXmlPatterns_debug.so;优化/usr/lib64/libQtGui.so;调试/usr/lib64/libQtGui_debug.so;优化/usr/lib64/libQtNetwork.so;调试/usr/lib64/libQtNetwork_debug.so;优化/usr/lib64/libQtCore.so;调试/usr/lib64/libQtCore_debug.so


我的问题:为什么不使用/usr/lib?我如何修复它呢?

可能是因为FindQt4模块对
-m32
标志一无所知


尝试显式设置
QT\u LIBRARY\u DIR

我已经尝试过了。我先做了,但什么也没做=(在FindQt4脚本中,没有什么比CMAKE_SIZE_OF_VOID_文件说FindQt4使用
qmake
程序从
PATH
env-var检测所有其他内容。也许你有单独的
qmake
用于32位和64位Qt?如果没有,我担心你除了手动设置
Qt\u库之外别无选择。我们ll,你可以在库路径中手动将
lib64
替换为
lib
。有很多建议!我已经做了补丁,将lib64替换为lib(在变量
QT_libraries
中)。但是我认为这不好。所以,每个人都知道没有什么比临时更无限的了