贡献者: addis
本文假设我们在 linux 桌面环境(或 Windows 的 WSL)下使用 CLion。
CLion-2022.2.tar.gz 解压 sudo tar -xvzf CLion-*.tar.gz -C /opt/ (WSL2 和 Ubuntu 20/22 亲测成功)
sudo snap install clion --classic
sh /opt/clion-*/bin/clion.sh,可以在 ~/.bashrc 中设置 alias, 需要桌面快捷方式在菜单栏的 Tools -> Create Desktop Entry 设置
/snap/clion/203/bin/clion.sh,可以在 bashrc 中设置 alias
.idea/workspace.xml 文件挺重要的,可以从 .idea/.gitignore 文件中注释掉
File > Settings > Build, Execution, Deployment > Custom Build Targets
+ 按钮
Run > Edit Configurations
+,选择刚创建的 "Custom Build Application"
(其实更方便的办法是用命令行编译,仅用 IDE 调试)
如果你只用 Makefile 不想迁移到 cmake 也没关系,你只需要写一个很简单的 wrapper,就可以用它作为 CLion 的工程文件。一个简单的例子:
# just a wrapper for Makefile for CLion
cmake_minimum_required(VERSION 3.10)
project(FEDVR-TDSE)
# ==== wrapper of Makefile ===
add_custom_target(my_targ1
COMMAND make -f make/all.mak opt_debug=true main1.x
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)
add_custom_target(my_targ2
COMMAND make -f make/all.mak opt_debug=true main2.x
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)
# ==== dummy settings to make CLion happy ===
set(CMAKE_CXX_STANDARD ${opt_std})
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
file(GLOB ALL_HEADERS
"${PROJECT_SOURCE_DIR}/headers/*.h")
message(STATUS "${ALL_HEADERS}")
add_executable(dummy1
${PROJECT_SOURCE_DIR}/main1.cpp ${ALL_HEADERS})
add_executable(dummy2
${PROJECT_SOURCE_DIR}/main2.cpp ${ALL_HEADERS})
Settings > Build,Execution,Development > Toolchains 选择编译环境,如 WSL,Mingw,Docker,SSH 等。会检测 CMake 的版本以及 GDB 的版本。
Settings > Build,Execution,Development > CMake 可以进行 cmake 设置。可以用 -G 选项指定构造文件(ninja/makefile/vs code)。
~/.ssh/config 中的 host 设置,但是第一次编译时可能要稍微花点时间把源码传到 remote host(目录如 /tmp/tmp.TH5zt7WrwC)。另外仍然不会运行 ~/.bashrc,需要在 CLion 中手动添加环境变量。
C:\...\msys64-20240712\mingw64
cmake。也可以用 Settings > Build,Execution,Development > CMake 进入。包括 Build options -- -j 16,运行 cmake 时的环境变量(例如 CPATH, LIBRARY_PATH)。
sh 运行 CMake,而且应该是新开的 session,所以还是不要试图通过脚本设置环境变量了
LD_LIBRARY_PATH)。
~/.bashrc 中设置的环境变量,如果用菜单栏打开 CLion,并不会生效。所以此时在命令行中启动 CLion 即可省略手动设置。
~/.bashrc 中添加 alias clion="sh /opt/clion-*/bin/clion.sh"。
Editor > General > Smart Keys > Reformat on paste 里面设置。