贡献者: 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
文件中注释掉
如果你只用 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 的版本。
~/.ssh/config
中的 host 设置,但是第一次编译时可能要稍微花点时间把源码传到 remote host(目录如 /tmp/tmp.TH5zt7WrwC
)。另外仍然不会运行 ~/.bashrc
,需要在 CLion 中手动添加环境变量。
mingw64.exe
却提示说找不到文件。又试了用 CLion 自带的 mingw,CMake 说找不到 /usr/bin/g++
,放弃。
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
里面设置。