Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.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

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
C++ 如何在通过cmake构建软件时指定运行时库_C++_Qt_Installation_Cmake_Build - Fatal编程技术网

C++ 如何在通过cmake构建软件时指定运行时库

C++ 如何在通过cmake构建软件时指定运行时库,c++,qt,installation,cmake,build,C++,Qt,Installation,Cmake,Build,我已经根据的从git构建了Qt。但是,我无法使用cmake使用此特定版本的Qt构建项目,并指出它无法生成正确的运行时路径,因为运行时库可能被我指定的Qt隐藏 CMake Warning at krita/CMakeLists.txt:79 (add_executable): Cannot generate a safe runtime search path for target krita because files in some directories may conflict w

我已经根据的从git构建了Qt。但是,我无法使用cmake使用此特定版本的Qt构建项目,并指出它无法生成正确的运行时路径,因为运行时库可能被我指定的Qt隐藏

CMake Warning at krita/CMakeLists.txt:79 (add_executable):
  Cannot generate a safe runtime search path for target krita because files
  in some directories may conflict with libraries in implicit directories:

    runtime library [libQt5Xml.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /usr/local/Qt-5.15.3/lib
    runtime library [libQt5Widgets.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /usr/local/Qt-5.15.3/lib
    runtime library [libQt5Gui.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /usr/local/Qt-5.15.3/lib
    runtime library [libQt5Core.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /usr/local/Qt-5.15.3/lib

  Some of these libraries may not be found correctly.
然后,我尝试在不使用
-developer build
的情况下构建它,以便有一个单独的安装目录(我使用了
sudo make install
,以便将其放置在usr/local中,并且可以正确地发现),但仍然失败。最后,我编辑了CMakeLists.txt文件以禁用Qt库的系统路径,并添加了所需的路径,如下所示:

find_package(Qt5 ${MIN_QT_VERSION}               
    PATHS /usr/local/Qt-5.15.3           
        REQUIRED COMPONENTS            
        Core      
        Gui   
        Widgets   
        Xml   
        Network   
        PrintSupport   
        Svg   
        Test   
        Concurrent   
        Sql   
        NO_DEFAULT_PATH   
)
现在,我得到一个不同的cmake警告:

     CMake Warning at cmake/modules/MacroKritaAddBenchmark.cmake:26 (add_executable):   
Cannot generate a safe runtime search path for target 
KisStrokeBenchmark   because there is a cycle in the constraint graph:
    
        dir 0 is [/home/tanmay/kritadev/build/libs/image]
        dir 1 is [/usr/local/Qt-5.15.3/lib]
        dir 15 must precede it due to runtime library [libQt5Widgets.so.5]
        dir 2 is [/home/tanmay/kritadev/build/libs/widgets]
        dir 3 is [/home/tanmay/kritadev/build/libs/flake]
        dir 4 is [/home/tanmay/kritadev/build/libs/resourcewidgets]
        dir 5 is [/home/tanmay/kritadev/build/libs/psd]
        dir 6 is [/home/tanmay/kritadev/build/libs/pigment]
        dir 7 is [/home/tanmay/kritadev/build/libs/command]
        dir 8 is [/home/tanmay/kritadev/build/libs/metadata]
        dir 9 is [/home/tanmay/kritadev/build/libs/widgetutils]
        dir 10 is [/home/tanmay/kritadev/build/libs/resources]
        dir 11 is [/home/tanmay/kritadev/build/libs/koplugin]
        dir 12 is [/home/tanmay/kritadev/build/libs/store]
        dir 13 is [/home/tanmay/kritadev/build/libs/global]
        dir 14 is [/home/tanmay/kritadev/build/libs/version]
        dir 15 is [/usr/local/Qt-5.15.2/lib]
        dir 1 must precede it due to runtime library [libQt5Test.so.5]
现在,它构建并安装,但在运行时崩溃

incompatible qt versions: 5.15.2 and 5.15.3

我需要这个手动构建的Qt作为运行库,因为我希望看到所做的更改。那么,如何将运行库设置为手动构建的Qt?或者,这个问题有没有更简单的解决方案?任何帮助都将不胜感激。

将系统库与您构建的系统库分开需要非常小心。对于KDE软件,我建议使用
craft
kdesrc build
来实现这一点。