ununtu 下命令行编译qt文件

IDE 将一切都安排好了,但我还是喜欢清楚地掌控一切的感觉, cmake 对于程序员是个好东西, 我更喜欢使用他。

首先,安装wsl2 : 网上教程很多,不赘述

其次,安装ununtu 最新版本20.04.LTS

期间出现一个问题:ubuntu 下载总出错。然后,重装应用商店,问题解决。

下载后,安装ubuntu, 点击,打开ubuntu, 设置用户名,密码就ok了。

然后是命令行安装qt . 

1 sudo apt-get update
2 sudo apt-get install build-essential
3 sudo apt-get install qtcreator
4 sudo apt-get install qt5-default
5 sudo apt-get install libfontconfig1
6 sudo apt-get install mesa-common-dev
7 sudo apt-get upgrade

qt的安装有个安装器,非常方便,但要图形界面。尝试装了xming ,一系列设置,运行qtcreator 后,xming 啥反应都没。然后。。。。就放弃了,这不重要。

接下来,开始实验代码:

有两个并行目录:

untitle2

untitle3

其中,untitle3 编译出一个cmd3的包,并为untitle2所用

untitle2 目录下的CMakeLists.txt

 1 cmake_minimum_required(VERSION 3.14)
 2 
 3 project(untitled2 LANGUAGES CXX)
 4 
 5 set(QT_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5")
 6 set(Qt5_DIR ${QT_DIR})
 7 
 8 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 9 
10 set(CMAKE_AUTOUIC ON)
11 set(CMAKE_AUTOMOC ON)
12 set(CMAKE_AUTORCC ON)
13 
14 set(CMAKE_CXX_STANDARD 11)
15 set(CMAKE_CXX_STANDARD_REQUIRED ON)
16 
17 find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
18 find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)
19 
20 add_subdirectory(../untitled3 cmd_binary_dir)
21 list(APPEND EXTRA_INCLUDE ../untitled3)
22 list(APPEND EXTRA_LIBS cmd3)
23 
24 
25 add_executable(untitled2
26   main.cpp
27 )
28 target_link_libraries(untitled2
29     Qt${QT_VERSION_MAJOR}::Core
30     ${EXTRA_LIBS}
31     )
32 
33 target_include_directories(untitled2 PUBLIC
34     "${PROJECT_BINARY_DIR}"
35     "${EXTRA_INCLUDE}"
36     )

untitle3下的CMakeLists.txt

 1 cmake_minimum_required(VERSION 3.14)
 2 
 3 project(cmd3 LANGUAGES CXX)
 4 
 5 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 6 set(CMAKE_AUTOUIC ON)
 7 set(CMAKE_AUTOMOC ON)
 8 set(CMAKE_AUTORCC ON)
 9 set(CMAKE_CXX_STANDARD 11)
10 set(CMAKE_CXX_STANDARD_REQUIRED ON)
11 
12 find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
13 find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)
14 
15 add_library(cmd3 SHARED
16   untitled3_global.h
17   untitled3.cpp
18   untitled3.h
19 )
20 
21 target_link_libraries(cmd3 PRIVATE Qt${QT_VERSION_MAJOR}::Core)
22 
23 target_compile_definitions(cmd3 PRIVATE UNTITLED3_LIBRARY)

开始编译出了点小故障,总提示找不到cmd3.so, 手工编译untitled3,是成功的,最后发现cmakefile书写上有点小问题,解决后,编译还是不行。估计是cmake 不会覆盖已生成的一些文件,造成错误无法修正。

新开了一个编译目录,编译,一次性通过

 ----- 后记:

在实际开发中,发现一个问题,websockets 包并没有默认安装。采用下列命令:

sudo apt install libqt5websockets5-dev -y

执行后,有个提示,要用 apt --fix-broken install 去修正一下, 运行一下这个命令。然后,程序就可以使用这个qt5websockets 这些包了。

 

posted on 2021-07-21 15:59  金凯旋  阅读(137)  评论(0编辑  收藏  举报

导航