»
(18)C++14 智能指针及引用计数*
(19)C++14 多线程pthread*
(20)C++14 同步锁mutex*
(24)C++中的计时与等待*
(25)C++中的高精度计算*
(27)C++14 std::string*
(30)CLion远程调试配置
(31)C++高级技能*
CLion远程调试配置
1、配置远程Linux服务器的SSH:
File->Settings->Tools->SSH Configurations
勾上Send keep-alive messages every 300 seconds
2、配置代码的Deployment:
File->Settings->Build,Execution,Deployment中配置Deployment
在Connection中,Root path填“/”;顶部Mappings中,选择windows本机代码目录以及部署到Linux服务的目录,其中,Web path可以不用管。
3、配置Toolchain:
File->Settings->Build,Execution,Deployment中配置Toolchains
配上Remote Host。需要注意的是,在远程Linux服务器上需要安装有CMake以及GDB
4、配置CMake的两个打包方式
File->Settings->Build,Execution,Deployment中配置CMake
此步必须配置两个Profile,一个是Debug,一个是Release。否则,没法install程序到服务器
5、用编译按钮编译程序后,在CLion的顶部菜单中选择Build->Install可以安装编译完成的程序到远程Linux服务器。并且CLion可以对整个项目或者单个文件Rebuild
6、CLion报错:cannot find any CMake profile的问题解决:
在 “Build, Execution, Deployment” -> “CMake” 中,需要至少一个 Debug 和一个 Release 配置。
7、CLion运行程序过程中,中文乱码的问题的解决办法:
1)打开 Help -> Edit Custom VM Options,添加以下行:
-Dfile.encoding=UTF-8
保存后,重启CLion
2)确保所有源文件的文件字符集为UTF-8:CLion菜单栏File->File Properties->File Encoding,选择 UTF-8
3)修改CMakeList.txt
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -finput-charset=UTF-8 -fexec-charset=UTF-8")
8、CMakeList.txt文件例子:
#对cmake的最低(高)版本的要求
cmake_minimum_required(VERSION 3.16.3)
#工程名称
project(my_exe)
#设定CPP和C编译器使用的语言标准版本
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_C_STANDARD_REQUIRED ON)
#启用汇编
#enable_language(ASM)
#设置汇编后缀
set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS asm)
#指定为使用C++14标准
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++14 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -finput-charset=UTF-8 -fexec-charset=UTF-8")
#添加pthread库
#set(THREADS_PREFER_PTHREAD_FLAG ON) #部分编译环境pthread只能在命令行添加
#find_package(Threads REQUIRED) #部分编译环境pthread只能在命令行添加
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") #在命令行添加pthread,注意CMake打包过程的日志输出
#添加opencv库
find_package(OpenCV REQUIRED) #定位OpenCV在系统中的位置,如果系统安装了多个OpenCV的版本,可用另一带版本的命令:find_package(OpenCV 4 REQUIRED)#中间的4为版本号
#头文件的搜索路径
include_directories(${PROJECT_SOURCE_DIR}/include ${OpenCV_INCLUDE_DIRS})
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output)
link_directories(${PROJECT_SOURCE_DIR}/output)
#开始编译
add_library(lib1 src/lib1.c)
add_library(lib2 src/lib2.c)
add_executable(my_exe src/main.c)
#开始连接
#注意:有头文件引入的相互依赖的库都需要一个一个地添加
target_link_libraries(lib1 ${Threads_LIBS} lib2)
target_link_libraries(my_exe ${Threads_LIBS} lib1 lib2)
9、要本机debug linux代码,请安装WSL(以管理员身份运行powershell):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
或者使用CLion自带的mingw
注意事项:WSL2的性能用着用着就会变得很慢很慢,电脑性能会受到WSL2的很大影响,所以,建议安装其他虚拟机软件替代WSL2。
CMake构建工程命令行命令:
cmake -B build -GNinja -DCMAKE_INSTALL_PREFIX=/usr/bin #配置(新建build目录、校验编译环境)
cmake --build build/ #编译
cmake --install build/ #安装