cmake、conan 和 qt hello world 项目构建错误
cmake, conan, and qt hello world project build error
我是 Whosebug、Conan 和 CMake 的新手。
我正在尝试构建一个依赖于 Qt 和 CMake 的 hello world 程序。我已经从 public 存储库 cmake-hello-world 中克隆了它并成功编译了它。
现在,我正在尝试 conanize
这个项目,我已经安装了 Qt/5.9@bincrafters/stable
jfrog-bintray 组件,它在 bintray
上很容易获得,并更改了 CMakelist.txt.
这是我的柯南简介:
cat ~/.conan/profiles/default
[settings]
os=Linux
os_build=Linux
arch=x86_64
arch_build=x86_64
compiler=gcc
compiler.version=5
compiler.libcxx=libstdc++
build_type=Release
[options]
[build_requires]
[env]
CMakeList.txt:
cmake_minimum_required(VERSION 3.5)
project(helloworld)
# If conan is being used, configure CMake to use conan for dependencies.
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work.
Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld ${CONAN_LIBS})
从根目录开始,我是运行这些命令:
mkdir build
cd build
conan install .. --build missing
cmake ..
make
我收到以下错误:
[ 16%] Automatic moc, uic and rcc for target helloworld
[ 16%] Built target helloworld_automoc
[ 33%] Building CXX object CMakeFiles/helloworld.dir/main.cpp.o
In file included from /home/ram2020/temp/temp/working_qt_tar/Qt-CMake-HelloWorld/main.cpp:1:0:
/home/ram2020/temp/temp/working_qt_tar/Qt-CMake-HelloWorld/mainwindow.h:4:23: fatal error: QMainWindow: No such file or directory
compilation terminated.
CMakeFiles/helloworld.dir/build.make:62: recipe for target 'CMakeFiles/helloworld.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/helloworld.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/helloworld.dir/all' failed
make[1]: *** [CMakeFiles/helloworld.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
我在网上找不到太多帮助。请帮助
Ubuntu 18.04
在conan-qt test的基础上修改了CMakeLists.txt:
cmake_minimum_required(VERSION 3.8.2)
project(helloworld)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
<b>include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()</b>
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work. Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld Qt5::Widgets)
而您用于测试的 conanfile.txt 是:
[requires]
qt/5.14.1@bincrafters/stable
[generators]
cmake
qt
[options]
*:shared=True
并且你必须执行命令:
mkdir build
cd build
conan install ..
cmake ..
make
Qt xcb 插件需要一些库,因此必须使用以下命令安装一些包:
sudo apt-get install libgl1-mesa-dev libxcb-xinerama0 libxcb-shm0 libxcb-xinput0
Ubuntu 16.04
Qt 5.14 的要求在 Ubuntu 16.04 中不可用,因此必须安装 Qt 5.9:
<b>cmake_minimum_required(VERSION 3.1.0)</b>
project(helloworld)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# add conan
<b>include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()</b>
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work. Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld Qt5::Widgets)
[requires]
Qt/5.9@bincrafters/stable
[generators]
cmake
[options]
*:shared=True
并且你必须执行命令:
mkdir build
cd build
conan install .. --build Qt
cmake ..
make
它还会安装依赖项:
sudo apt-get install -y --no-install-recommends \
libxcursor-dev \
libxfixes-dev \
libxi-dev \
libgl1-mesa-dev \
libxrandr-dev \
libx11-xcb-dev \
libxcb-keysyms1 \
libxcb-keysyms1-dev \
libxcb-image0 \
libxcb-image0-dev \
libxcb-icccm4 \
libxcb-icccm4-dev \
libxcb-sync-dev \
libxcb-xfixes0-dev \
libxcb-shape0-dev \
libxcb-render-util0-dev \
libxcb-randr0-dev \
libxcb-render-util0 \
libxcb-glx0-dev \
libxcb-xinerama0 \
libxcb-xinerama0-dev
感谢您的所有回答。下面的解决方案对我有用,这就是我的 CMakeList 文件的样子。我发帖是因为以下信息可能对其他人有帮助。
cmake_minimum_required(VERSION 3.5)
project(helloworld)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_VERBOSE_MAKEFILE TRUE)
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
include_directories(${CONAN_INCLUDE_DIRS})
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work. Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld Qt5::Widgets)
# target_link_libraries(helloworld ${CONAN_LIBS})
这是我的conanfile.py
from conan_base import <your import module here>
class HelloWorld(your import module here):
name = "HelloWorld"
license = "BSD"
author = "your name"
url = "git@gitlab.com:<url/project>"
description = "Base Library A of the example project."
topics = ("<Put some tag here>", "<here>", "<and here>")
def build_requirements(self):
self.build_requires("gtest/1.8.1@bincrafters/stable")
def requirements(self):
self.requires("Qt/5.11.2@bincrafters/stable")
# def package_info(self):
# self.cpp_info.libs = ["BaseLibBLibrary"]
我的解决方案比之前建议的解决方案稍微简单一些,但更重要的是,这不需要在您的 cmake 文件中包含 conan 特定条目以使其可移植。
conanfile.py
from conans import ConanFile
class TestbedConan(ConanFile):
name = "Testbed"
description = "Testbed"
license = "None"
url = "None"
settings = "os", "arch", "compiler", "build_type"
generators = [
"cmake_paths",
]
requires = [
"Qt/5.15.2"
]
CMakeLists.txt
cmake_minimum_required(VERSION 3.21.0)
project(helloworld VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(helloworld
main.cpp
)
target_link_libraries(helloworld Qt::Widgets)
然后,您只需运行以下命令即可构建您的项目:
conan install -pr my_profile -if build .
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake -Bbuild
cmake --build build
我是 Whosebug、Conan 和 CMake 的新手。
我正在尝试构建一个依赖于 Qt 和 CMake 的 hello world 程序。我已经从 public 存储库 cmake-hello-world 中克隆了它并成功编译了它。
现在,我正在尝试 conanize
这个项目,我已经安装了 Qt/5.9@bincrafters/stable
jfrog-bintray 组件,它在 bintray
上很容易获得,并更改了 CMakelist.txt.
这是我的柯南简介:
cat ~/.conan/profiles/default
[settings]
os=Linux
os_build=Linux
arch=x86_64
arch_build=x86_64
compiler=gcc
compiler.version=5
compiler.libcxx=libstdc++
build_type=Release
[options]
[build_requires]
[env]
CMakeList.txt:
cmake_minimum_required(VERSION 3.5)
project(helloworld)
# If conan is being used, configure CMake to use conan for dependencies.
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work.
Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld ${CONAN_LIBS})
从根目录开始,我是运行这些命令:
mkdir build
cd build
conan install .. --build missing
cmake ..
make
我收到以下错误:
[ 16%] Automatic moc, uic and rcc for target helloworld
[ 16%] Built target helloworld_automoc
[ 33%] Building CXX object CMakeFiles/helloworld.dir/main.cpp.o
In file included from /home/ram2020/temp/temp/working_qt_tar/Qt-CMake-HelloWorld/main.cpp:1:0:
/home/ram2020/temp/temp/working_qt_tar/Qt-CMake-HelloWorld/mainwindow.h:4:23: fatal error: QMainWindow: No such file or directory
compilation terminated.
CMakeFiles/helloworld.dir/build.make:62: recipe for target 'CMakeFiles/helloworld.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/helloworld.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/helloworld.dir/all' failed
make[1]: *** [CMakeFiles/helloworld.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
我在网上找不到太多帮助。请帮助
Ubuntu 18.04
在conan-qt test的基础上修改了CMakeLists.txt:
cmake_minimum_required(VERSION 3.8.2)
project(helloworld)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
<b>include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()</b>
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work. Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld Qt5::Widgets)
而您用于测试的 conanfile.txt 是:
[requires]
qt/5.14.1@bincrafters/stable
[generators]
cmake
qt
[options]
*:shared=True
并且你必须执行命令:
mkdir build
cd build
conan install ..
cmake ..
make
Qt xcb 插件需要一些库,因此必须使用以下命令安装一些包:
sudo apt-get install libgl1-mesa-dev libxcb-xinerama0 libxcb-shm0 libxcb-xinput0
Ubuntu 16.04
Qt 5.14 的要求在 Ubuntu 16.04 中不可用,因此必须安装 Qt 5.9:
<b>cmake_minimum_required(VERSION 3.1.0)</b>
project(helloworld)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# add conan
<b>include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()</b>
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work. Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld Qt5::Widgets)
[requires]
Qt/5.9@bincrafters/stable
[generators]
cmake
[options]
*:shared=True
并且你必须执行命令:
mkdir build
cd build
conan install .. --build Qt
cmake ..
make
它还会安装依赖项:
sudo apt-get install -y --no-install-recommends \
libxcursor-dev \
libxfixes-dev \
libxi-dev \
libgl1-mesa-dev \
libxrandr-dev \
libx11-xcb-dev \
libxcb-keysyms1 \
libxcb-keysyms1-dev \
libxcb-image0 \
libxcb-image0-dev \
libxcb-icccm4 \
libxcb-icccm4-dev \
libxcb-sync-dev \
libxcb-xfixes0-dev \
libxcb-shape0-dev \
libxcb-render-util0-dev \
libxcb-randr0-dev \
libxcb-render-util0 \
libxcb-glx0-dev \
libxcb-xinerama0 \
libxcb-xinerama0-dev
感谢您的所有回答。下面的解决方案对我有用,这就是我的 CMakeList 文件的样子。我发帖是因为以下信息可能对其他人有帮助。
cmake_minimum_required(VERSION 3.5)
project(helloworld)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_VERBOSE_MAKEFILE TRUE)
# Turn on automatic invocation of the MOC, UIC & RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
include_directories(${CONAN_INCLUDE_DIRS})
# There may be a way to tell up front if Qt5 is going to be found, but I haven't found
# a foolproof way to do it yet, so settle for the default error message for now.
#if(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# message(WARNING "CMAKE_PREFIX_PATH is not defined, so find_package may not work. Set the CMAKE_PREFIX_PATH "
# "environment variable to the install prefix of Qt 5, either on the command line as "
# "-DCMAKE_PREFIX_PATH=\"path/to/Qt5/lib/cmake\" or with set(CMAKE_PREFIX_PATH path/to/Qt5/lib/cmake)")
#endif(NOT CMAKE_PREFIX_PATH AND NOT Qt5Widgets_DIR)
# Add a compiler flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Make this a GUI application on Windows
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
endif()
# Find the QtWidgets library
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp mainwindow.cpp mainwindow.ui resources.qrc)
# Add the Qt5 Widgets for linking
target_link_libraries(helloworld Qt5::Widgets)
# target_link_libraries(helloworld ${CONAN_LIBS})
这是我的conanfile.py
from conan_base import <your import module here>
class HelloWorld(your import module here):
name = "HelloWorld"
license = "BSD"
author = "your name"
url = "git@gitlab.com:<url/project>"
description = "Base Library A of the example project."
topics = ("<Put some tag here>", "<here>", "<and here>")
def build_requirements(self):
self.build_requires("gtest/1.8.1@bincrafters/stable")
def requirements(self):
self.requires("Qt/5.11.2@bincrafters/stable")
# def package_info(self):
# self.cpp_info.libs = ["BaseLibBLibrary"]
我的解决方案比之前建议的解决方案稍微简单一些,但更重要的是,这不需要在您的 cmake 文件中包含 conan 特定条目以使其可移植。
conanfile.py
from conans import ConanFile
class TestbedConan(ConanFile):
name = "Testbed"
description = "Testbed"
license = "None"
url = "None"
settings = "os", "arch", "compiler", "build_type"
generators = [
"cmake_paths",
]
requires = [
"Qt/5.15.2"
]
CMakeLists.txt
cmake_minimum_required(VERSION 3.21.0)
project(helloworld VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(helloworld
main.cpp
)
target_link_libraries(helloworld Qt::Widgets)
然后,您只需运行以下命令即可构建您的项目:
conan install -pr my_profile -if build .
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake -Bbuild
cmake --build build