远程Linux开发的开发环境搭建(非常好版)
首先,做c++的东西,最好用cmake, 类似java里的maven,
先有一个cmake的项目模板
结构如下
cmake-template/
├── CMakeLists.txt # CMake 构建配置
├── .clangd # clangd 配置(推荐用 clangd 替代默认 IntelliSense)
├── .gitignore
├── .vscode/
│ ├── c_cpp_properties.json # C/C++ 扩展配置
│ └── settings.json # 工作区设置
└── src/
└── main.cpp # 入口文件
CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(my_project
VERSION 1.0.0
LANGUAGES CXX
)
# ---- 全局设置 ----
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 生成 compile_commands.json,方便 clangd 补全
# ---- 可执行目标 ----
add_executable(${PROJECT_NAME}
src/main.cpp
)
# ---- 包含目录(按需添加) ----
# target_include_directories(${PROJECT_NAME} PRIVATE include)
# ---- 链接第三方库(按需添加) ----
# find_package(Threads REQUIRED)
# target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
main.cpp
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<std::string> messages = {"Hello", "from", "CMake!"};
for (const auto& msg : messages) {
std::cout << msg << " ";
}
std::cout << std::endl;
return 0;
}
c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": ["${workspaceFolder}/**"],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
}
],
"version": 4
}
settings.json
{
"cmake.buildDirectory": "${workspaceFolder}/build",
"cmake.configureOnOpen": true,
"C_Cpp.intelliSenseEngine": "disabled",
"editor.formatOnSave": true
}
.clangd
CompileFlags:
CompilationDatabase: build
Diagnostics:
UnusedIncludes: Strict
这样模板就做好了
把这个模板项目放在远程服务器的一个目录里
然后vs code里用remote-ssh打开这个目录
这时候就看到vs code里 有了cmake的扩展
然后还需要服务器里安装cmake
sudo apt install cmake

然后就可以在cmake里开心的build和launch里, 甚至改了代码可以直接launch (launch是在服务器那边执行)
非常好. 达到了想要的目的而且非常的规范
另外关于 clangd :CMAKE_EXPORT_COMPILE_COMMANDS ON 会生成 compile_commands.json,这是 clangd 做代码补全和跳转的依据,体验远好于 VS Code 默认的 IntelliSense。建议在服务器上装好 clangd(sudo apt install clangd),然后在 VS Code 里装 clangd 扩展 并禁用微软的 C/C++ IntelliSense(settings.json 里已经帮你配好了)。
IntelliSense也是我认为remote-ssh是半成品的一个原因, 现在IntelliSense被禁用了代码补全确实没有了
两头都安装好clangd之后,
vs code 里按f1 然后 clangd: Restart language server . 就ok了,更好的代码补全
完全ok,全面胜利
最后:如果你的项目后续需要引入第三方库,在 CMakeLists.txt 里用 find_package() 或 add_subdirectory() 添加即可。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)