提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吴园园|2020-05-27 11:01:06.143|阅读 2540 次
概述:对于非CMake和非Gradle项目,您仍然可以从CLion提供的高级IDE功能中受益。一种方法是导入非CMake项目,然后让CLion将其转换为简单的CMake结构。另一种选择是通过加载项目的编译数据库来打开项目。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。感兴趣的朋友欢迎下载试用!CLion现已加入在线订购,点击此处查看价格详情>>
对于非CMake和非Gradle项目,您仍然可以从CLion提供的高级IDE功能中受益。一种方法是导入非CMake项目,然后让CLion将其转换为简单的CMake结构。另一种选择是通过加载项目的编译数据库来打开项目。
使用编译数据库,CLion可以检测项目文件并提取所有必需的编译器信息,例如包含路径和编译标志。这种方法使您可以在IDE中进行操作并获得其功能的完整体验,同时使您的项目独立于CMake或Gradle。
一个编译数据库是一个 JSON命名-格式化文件compile_commands.json 包含有关项目中每个编译单元的结构化数据。
以下代码段显示了JSON编译数据库的示例:
{ "directory": "/Users/me/prj/Calendar/", "command": "/usr/local/bin/g++-7 -I/Users/me/prj/Calendar/calendars -g -std=c++11 -o calendar_run.dir/main.cpp.o -c /Users/me/prj/Calendar/main.cpp", "file": "/Users/me/prj/Calendar/main.cpp" }, { "directory": "/Users/me/prj/Calendar/calendars", "command": "/usr/local/bin/g++-7 -I/Users/me/prj/Calendar/calendars -g -std=c++11 -o calendars.dir/calendar_defs.cpp.o -c /Users/me/prj/Calendar/calendars/calendar_defs.cpp", "file": "/Users/me/prj/Calendar/calendars/calendar_defs.cpp" }
您可以看到称为命令对象的条目数组。每个命令对象代表翻译单元的主文件,工作目录,实际的编译命令(或参数列表),以及可选的由编译步骤创建的输出的名称。
生成编译数据库
要获得项目的编译数据库,您可以使用多种选择:它可以由编译器,构建系统和专用工具生成。以下是一些示例:
CMake:
使用CMAKE_EXPORT_COMPILE_COMMANDS 标志。你可以运行
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON…
或将以下行添加到您的CMakeLists.txt脚本中:
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
compile_commands.json 文件将被放入构建目录。
CMAKE_EXPORT_COMPILE_COMMANDS仅由Makefile和Ninja 生成器实现。对于其他生成器,此选项将被忽略。
请注意,NMAKE生成器创建了不正确的编译数据库,这是一个已知问题
Clang(5.0及更高版本):
该-Mj 选项写入每个输入文件汇编条目。您可以将其用于项目中的每个文件,然后将输出合并到JSON格式的编译数据库中
Ninja(1.2版及更高版本):
要获取编译数据库,请使用 -t compdb选项。请注意,它需要使用规则名称作为参数:-t compdb rule1 rule2...Ninja构建文件(默认名称build.ninja)中提供了规则列表,例如:
rule cc command = gcc -c -o $out $in description = CC $out rule link command = gcc -o $out $in description = LINK $out
要在只有一个名为的规则的情况下生成编译数据库cc,请指定:
-t compdb cc > compile_commands.json
但是对于多个规则,您需要从构建文件中获取其确切名称,并将其传递给 compdb
基于Make的项目:
该compiledb发电机工具,Makeup基础构建系统创建编译数据库。
Bear和拦截构建工具:
从scan-build 进行Bear和intercept-build是通过在构建过程中拦截编译器调用来帮助您获得编译数据库的工具。
SourceTrail Visual Studio扩展:
SourceTrail Extension 可以为MS Visual Studio解决方案生成一个编译数据库。
在CLion中使用编译数据库
载入专案
为项目创建编译数据库后,可以将其加载到CLion中。导航到文件| 在主菜单上打开,选择compile_commands.json文件或包含该文件的目录,然后单击“ 以项目形式打开”。
结果,检测到项目文件,并且所有命令的状态都在 compile_commands.json显示在“ 构建工具”窗口中:
项目文件可以位于包含以下内容的目录之外 compile_commands.json。CLion从编译数据库中提取实际路径,并收集项目文件,无论它们位于何处。
现在,CLion的代码洞察力,重构,分析和导航功能可完全用于您的项目。
CLion本机支持JSON文件格式,因此您可以编辑compile_database.json文件直接在IDE中显示,并带有突出显示和代码完成帮助。此外,CLion还会检查您的合规性compile_database.json 文件与编译数据库JSON模式。例如,它会在命令条目中缺少属性或使用错误类型时发出通知:
更改项目根目录
默认情况下,项目根目录设置为包含编译数据库文件的目录。但是,这并不总是很方便:例如,如果某些项目文件位于目录之外,compile_commands.json(即在项目根目录之外),无论实际的文件夹结构如何,此类文件都会在树中列出。在这种情况下,您需要将项目根目录设置为包含两个目录的父目录compile_commands.json 和项目文件。
要更改项目根目录,请选择“ 工具” |“工具”。编译数据库| 从主菜单更改“项目根目录 ”,并为项目根目录提供其他位置。
自动导入并重新加载项目
为了使您的项目在每次更改时都自动重新加载 compile_command.json,在“设置” /“首选项” |“设置”中设置“ 使用自动导入”复选框。 构建,执行,部署| 编译数据库。如果取消选中此复选框,则在对编译数据库文件进行任何修改后,都会显示一条弹出消息,提示您导入更改:
您也可以使用“ 工具” | “ 重新加载编译数据库项目”操作。编译数据库菜单可在需要时手动刷新项目。
编译一个文件
尽管CLion尚未实现用于编译数据库项目的构建功能,但是您可能会发现在不构建整个项目的情况下检查单个文件中的更改很有用。为此,CLion提供了“重新编译”操作。它可用于单个源文件和头文件,也可用于项目树中选择的文件组。对于标题,CLion使用resolve上下文来编译包含指定标题的源文件之一。请注意,目录和非C / C ++文件均禁用了重新编译。
要为当前打开的文件调用“重新编译 ”,请选择“ 生成” |“新建”。从主菜单重新编译(或按Ctrl+Shift+F9)。对于项目树中的文件,请使用右键单击菜单中的“重新编译”选项(或按相同的Ctrl+Shift+F9键)。要重新编译几个文件,请在项目树中选择它们,然后使用右键菜单中的Recompile selected files选项Ctrl+Shift+F9。请注意,当用于多个文件时,重新编译将在第一次编译失败时停止。
重新编译文件时,CLion从对应的命令对象中提取必要的信息compile_commands.json:编译命令行(但CLion会抑制输出并删除指定输出文件的标志),以及要使用的编译器。
将目录标记为。
“ 标记目录为”操作也可用于您的编译数据库项目。在项目工具窗口中选择一个目录,右键单击它,然后选择将目录标记为操作。有关用例的描述以及有关CLion如何处理已标记目录的更多详细信息,请参阅“ 控制源,库和排除目录”部分。
构建并运行
编译数据库本身缺少构建,运行和调试应用程序所需的数据。但是,可以通过为编译数据库项目添加自定义构建目标并为这些目标创建自定义运行/调试配置来设置工作流程。
=====================================================
更多关于CLion的教程、资源敬请关注我们即将推出的后续教程哦~
想要购买Clion正版授权的朋友欢迎。
JetBrain技术交流群现已开通,QQ搜索群号“786598704”或者扫描下方二维码即可加入
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢