Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 如何启用Ctrl+;在CLion中单击导航,就像VScode那样?_Visual Studio Code_Header_Ide_Clion - Fatal编程技术网

Visual studio code 如何启用Ctrl+;在CLion中单击导航,就像VScode那样?

Visual studio code 如何启用Ctrl+;在CLion中单击导航,就像VScode那样?,visual-studio-code,header,ide,clion,Visual Studio Code,Header,Ide,Clion,我正在一个很好的环境(C++/Linux/CLI/Makefile/ARM/gcc/Embedded)中开发,我喜欢用其他桌面上尚未打开的IDE打开我的代码:VSCode、Sublime、CLion、atom等等 我对VSCode印象深刻,因为我几乎可以按住ctrl键并单击任何内容:标题、声明、定义 我只是想知道我如何/是否能在CLion内获得同样的行为 通过谷歌搜索,我得到了基于CMake的答案,当然这是不可接受的 (我的项目根目录中有一个神奇的3行CMakeList.txt(*)文件,它立即

我正在一个很好的环境(C++/Linux/CLI/Makefile/ARM/gcc/Embedded)中开发,我喜欢用其他桌面上尚未打开的IDE打开我的代码:VSCode、Sublime、CLion、atom等等

我对VSCode印象深刻,因为我几乎可以按住ctrl键并单击任何内容:标题、声明、定义

我只是想知道我如何/是否能在CLion内获得同样的行为

通过谷歌搜索,我得到了基于CMake的答案,当然这是不可接受的

(我的项目根目录中有一个神奇的3行CMakeList.txt(*)文件,它立即敦促真正的Makefile完成它的正确工作,这样我就可以在CLion内/从CLion编译):


为了启用导航,您需要一个项目文件来告诉IDE编译源代码时使用了哪些设置/标志/定义,因为C/C++预处理器,而且makefiles是一种非常自由的编程语言

在CLion中,即使没有任何项目文件,也可以使用一些非常基本的C/C++导航。可能您的VSCode进一步执行了默认解析步骤,或者您启用了Makefile插件的VSCode

CLion目前支持3种类型的项目:
CMakeLists.txt
,和
Makefile


要启用高级解析,请创建一个
CMakeLists.txt
(如果不起作用,请在问题中引用),或者为makefile生成一个编译数据库项目。

这有帮助吗?嗯,编译数据库听起来像是一个不错的/新的线索…但不能真正添加更多的东西。我希望IDE能够自己找到自己的方法,就像VSCode(或者PyCharm,顺便说一句)一样。我对答案进行了一点扩展。对不起,我不明白什么叫“不能再添加更多内容”。请注意,Python没有任何类型的条件编译或严格的模块依赖关系。答案已被接受:我不想这样说,但事实上,“玩”CLion游戏(例如,使用真正的CMakeLists.txt,我的第一个,…对于x编译:疯狂的眼睛:)解决了所有问题。你说得对,VScode中的任何“更多/更好”都只是一个不那么丑陋的副作用。但我们是专业人士,不会对日常工作的副作用袖手旁观。
cmake_minimum_required(VERSION 3.5.1) 
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") 
project(my_project)

include_directories(.) 
include_directories(lib/)
include_directories(lib/*)
include_directories(inc/) 
include_directories(inc/*)
include_directories(com/)
include_directories(com/*)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")

add_custom_target(my_project COMMAND make -C ${my_project_SOURCE_DIR}
                         CLION_EXE_DIR=${PROJECT_BINARY_DIR})