我在我的專案中使用Qt 5.12.11。因為我想在linux和win上使用該軟體,我選擇了gcc編譯器(我使用MSYS2,所以gcc是10.3.0)。本地構建在linux和win上都很好,但通過GitHub Actions構建時卻找不到qt(無論我是否設定了CMAKE_PREFIX_PATH或Qt5_DIR)。
所以這就是我暫時被卡住的地方。有沒有人遇到過這樣的問題,或者對此有什么想法?
github行動看起來像
name: Build
ON:
push:/span>
branches: [ master ]
pull_request:
branches: [ master ] master ]。
env: master ]
BUILD_TYPE: Release
作業:
構建:
運行于: windows-latest
默認值:
運行:
shell: msys2 {0}。
steps: msys2 {0}。
- 用途: msys2/setup-msys2@v2
與:
install: mingw-w64-x86_64-toolchain[/span
msystem: mingw64
release: false
- name: Install QT
用途: jurplel/install-qt-action@v2
與:
版本: '5.12.11'
host: 'windows'/span>
target: 'desktop'
arch: 'win64_mingw73'
dir: '${{github.workspace}}/qt/'
install-deps: 'true'/span>
- name: List files in Qt
運行: 查找 ${{env.Qt5_Dir}}
- 用途: actions/checkout@v2
- name: Configure CMake
run: cmake -DCMAKE_BUILD_TYPE=${{env. BUILD_TYPE}} -DCMAKE_PREFIX_PATH="${{env.Qt5_Dir}}/lib/cmake/" DQt5_DIR=${{env. Qt5_Dir}}/lib/cmake/Qt5/ -G "CodeBlocks - MinGW Makefiles" -B '${{github. workspace}}'/build
- name:/span> Build
運行: cmake --build '${{github. workspace}}'/build --target RePr。
我也試過-DCMAKE_PREFIX_PATH="${{env.Qt5_Dir}}/lib/cmake/Qt5/"但沒有幫助。 :( 如果我直接從cmakelists設定CMAKE_PREFIX_PATH,我觀察到同樣的行為。
失敗的CMakeLists很簡單,也很平常(這是一個使用qt的嵌套包,所以不要被不同的cmakelists專案和構建目標所迷惑)
cmake_minimum_required(VERSION 3.14)
project(RePr_controller)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(QT_VERSION 5)
set(REQUIRED_LIBS Core Gui Widgets)
set(REQUIRED_LIBS_QUALIFIED Qt5::Core Qt5::Gui Qt5::Widgets)
add_library(${PROJECT_NAME} main_window.cpp main_window.h main_window.ui resources/resources.qrc)
add_dependencies(${PROJECT_NAME} FacadeLib)。
target_link_libraries(${PROJECT_NAME} FacadeLib Utils)
find_package(Qt${QT_VERSION } 組件 ${required_libs} REQUIRED)
target_link_libraries(${PROJECT_NAME} ${REQUIRED_LIBS_QUALIFIED})
直接從cmakelists中傳遞CMAKE_PREFIX_PATH會回傳
D: a/RePr/RePr/qt/Qt/5. 12.11/mingw73_64/lib/cmake/。
qt5在這里
D: a/RePr/RePr/qt/Qt/5. 12.11/mingw73_64/lib/cmake/Qt5/Qt5Config.cmake
最后,我在配置步驟中得到了這個資訊
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="D:/a/RePr/RePr/qt/Qt/5。 12.11/mingw73_64/lib/cmake/" -DQt5_DIR=D:/a/RePr/RePr/qt/Qt/5. 12.11/mingw73_64/lib/cmake/Qt5/ -G "CodeBlocks - MinGW Makefiles"/span> -B 'D:aRePrRePr'/build
shell。D:a\_tempmsysmsys2.CMD {0}。
env:
BUILD_TYPE: 發布
msystem: mingw64
pythonLocation: C:hostedtoolcachewindowsPython3.9.6x64
Qt5_Dir: D:/a/RePr/RePr/qt/Qt/5.12.11/mingw73_64
QT_PLUGIN_PATH: D:/a/RePr/RePr/qt/Qt/5.12.11/mingw73_64/plugins
QML2_IMPORT_PATH: D:/a/RePr/RePr/qt/Qt/5.12.11/mingw73_64/qml
--C語言編譯器識別為GNU 10.3.0。
-- CXX編譯器標識是GNU 10.3.0。
-- 檢測C語言編譯器ABI資訊-- 檢測C編譯器的ABI資訊--完成。
-- 檢查作業中的C編譯器。C:/msys64/mingw64/bin/gcc.exe - 跳過
-- 檢測C編譯器的特性。
-- 檢測C語言的編譯特性--完成。
-- 檢測CXX編譯器的ABI資訊。
--檢測CXX編譯器ABI資訊--完成。
-- 檢查作業中的CXX編譯器。C:/msys64/mingw64/bin/g .exe - 跳過
-- 檢測CXX的編譯特性。
-- 檢測CXX編譯特性--完成。
CMake在Controller/CMakeLists.txt:17(find_package)處出錯。
通過不提供"FindQt5.cmake" 在CMAKE_MODULE_PATH,該專案已經
要求CMake 查找由"Qt5"提供的包裝組態檔,但
--配置不完整,發生錯誤!。
請參見"D:/a/RePr/RePr/build/CMakeFiles/CMakeOutput.log"。
CMake沒有不找到一個。
不能 找到一個package組態檔,該檔案由"Qt5"提供,有以下任何一個名稱
以下名稱。
Qt5Config.cmake
qt5-config.cmake
在CMAKE_PREFIX_PATH "Qt5"中添加安裝前綴或設定"Qt5_DIR"。
為包含上述檔案之一的目錄。 如果"Qt5"提供一個
獨立的開發包 或SDK,請確保它已經被安裝。
錯誤。行程完成,退出代碼1.。
uj5u.com熱心網友回復:
將CMAKE_PREFIX_PATH設定為Qt5_Dir:
- name: Configure CMake
env:
CMAKE_PREFIX_PATH: ${{env.Qt5_Dir}}
run: cmake -DCMAKE_BUILD_TYPE=${{env. BUILD_TYPE}} -G "CodeBlocks - MinGW Makefiles" -B '${{github. workspace}}'/build。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310182.html
標籤:
