qt

1.控制台程序

1.src/main.cpp

1
2
3
4
5
6
7
8
9
10
#include <QCoreApplication>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug("hello,world\n");
qDebug() << "hi:" << "see you";
return a.exec();
}

2.Linux下编译

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cmake_minimum_required(VERSION 3.14)

# 设置项目名称和版本
project(MyQtApp VERSION 0.1 LANGUAGES CXX)

# 查找 Qt 6 包
find_package(Qt6 REQUIRED COMPONENTS Core)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 添加可执行文件
add_executable(MyQtApp src/main.cpp)

# 链接 Qt 库
target_link_libraries(MyQtApp Qt6::Core)

编译命令

1
2
3
mkdir build
cd build
cmake ..

3.windows下编译

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cmake_minimum_required(VERSION 3.24.0)

# 设置项目名称和版本
project(MyQtApp VERSION 0.1 LANGUAGES CXX)

#系统变量中没有Qt目录需要添加此句
set(CMAKE_PREFIX_PATH "C:\\D\\Program\\Qt\\6.9.0\\mingw_64")

# 查找 Qt 6 包
find_package(Qt6 REQUIRED COMPONENTS Core)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 添加可执行文件
set(SOURCE src/main.cpp)
add_executable(${PROJECT_NAME} ${SOURCE})
# 输出到项目下的 bin 文件夹
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

# 链接 Qt 库
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core )

编译命令

1
2
3
4
5
6
7
8
9
10
# 删除旧的配置
rm -r build
mkdir build
cd build

# 明确指定使用 MinGW 的编译器 (g++ 和 gcc)
cmake -G "MinGW Makefiles" -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc ..

# 再次尝试构建
cmake --build .

4.windows下静态编译

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
cmake_minimum_required(VERSION 3.16)
project(MyQtApp LANGUAGES C CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "C:\\D\\Program\\Qt\\6.2.4\\MSVC2022_x64_static_624_Release")

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Force x64 build
set(CMAKE_GENERATOR_PLATFORM x64)
set(CMAKE_GENERATOR_TOOLSET host=x64)

# Force Release build
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CONFIGURATION_TYPES Release)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt6 REQUIRED COMPONENTS Core)

aux_source_directory(./src srcs)
add_executable(${PROJECT_NAME}
#WIN32 # If you need a terminal for debug, please comment this statement
${srcs}
)
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core)
# Add static build settings

target_compile_definitions(${PROJECT_NAME} PRIVATE
QT_STATICPLUGIN
QT_NO_DEBUG
NDEBUG
)

编译命令

1
2
3
4
5
mkdir build
cd build
cmake .. -A x64
#cmake .. -G "Visual Studio 17 2022" -T host=x64 -A x64
cmake --build . --config Release -j8