对于想了解UbuntuCodeblocks配置EigenSophus的读者,本文将是一篇不可错过的文章,我们将详细介绍ubuntucodeblocks不能编译,并且为您提供关于#include失败,#
对于想了解Ubuntu Codeblocks 配置 Eigen Sophus的读者,本文将是一篇不可错过的文章,我们将详细介绍ubuntu codeblocks不能编译,并且为您提供关于#include
- Ubuntu Codeblocks 配置 Eigen Sophus(ubuntu codeblocks不能编译)
- #include
失败,#include "Eigen/Dense" 成功 - 为什么? - CodeBlocks
- CodeBlocks (17.12) 代码调试基础方法 & 快捷方式
- codeBlocks + QT
Ubuntu Codeblocks 配置 Eigen Sophus(ubuntu codeblocks不能编译)
1. 配置 Eigen
从网站 http://eigen.tuxfamily.org/index.php?title=Main_Page
下载 Eigen 的安装包,并解压。
在 codeblocks 中的设置 - 编译器 - 全局编译器设置 - 搜索路径 - 编译器,添加解压后的 Eigen 安装包即可。
编写简单的程序测试
1 #include <iostream>
2 #include <Eigen/Dense>
3 #include <Eigen/Core>
4 using namespace std;
5
6 int main()
7 {
8 Eigen::Matrix3d m;
9 m << 1,2,3,4,5,6,7,8,9;
10 cout << m << endl;
11 return 0;
12 }
编译运行查看结果。
看起来字体比较小,这环境设置中切换为终端输出。
终端中的输出为:
2. 配置 Sophus
在终端中输入
git clone http://github.com/strasdat/Sophus.git
cd Sophus/
git checkout a621ff
mkdir build
cd build
cmake ..
make
编译完成后
- 1 将 Sophus 添加到搜索路径
- 2 将 build 文件夹中的 libSophus.so 添加到链接器设置中的链接库
- 3 将 build 文件夹中的 libSophus.so 复制到 /usr/lib/x86_64-linux-gnu 目录下,在 /usr/lib/x86_64-linux-gnu 文件夹打开终端输入
$ sudo cp /home/kingbird/Sophus/build/libSophus.so libSophus.so
写测试程序
#include <iostream>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include "sophus/so3.h"
#include "sophus/se3.h"
using namespace std;
int main()
{
Eigen::Matrix3d m;
m << 1,2,3,4,5,6,7,8,9;
cout << m << endl;
Eigen::AngleAxisd A1(M_PI / 2, Eigen::Vector3d(0, 0, 1));
Eigen::Matrix3d R1 = A1.matrix();
Eigen::Quaterniond Q1(A1);
Sophus::SO3 SO3_R(R1);
cout << "SO(3) SO3_R from Matrix" << SO3_R << endl << endl;
return 0;
}
输出结果
配置完成。
#include 失败,#include "Eigen/Dense" 成功 - 为什么?
如何解决#include <Eigen/Dense> 失败,#include "Eigen/Dense" 成功 - 为什么??
在设置 Eigen 库时,我尝试了:
#include <eigen/Eigen/Dense>
导致错误的原因:
eigen/Eigen/Dense: No such file or directory
然而,
#include "eigen/Eigen/Dense"
成功。
这是为什么?根据之前提出的问题,我怀疑这是因为 #include <>
在系统目录中搜索而 #include ""
在本地搜索。如果是这样,那怎么把 Eigen 文件夹放到系统目录下?
解决方法
您需要按照特定于您的操作系统的说明进行操作。您没有描述您的操作系统和编译器,并且对于当今世界上使用的每种操作系统都没有适用的标准说明。它因操作系统和编译器而异。
或者,所有 C++ 编译器都有一个配置设置,该设置向编译器在搜索 #include <path>
头文件时查找的列表添加一个额外的目录。 gcc 和许多其他 Linux 编译器使用 -I
选项。这可以手动指定,也可以在 Makefile
中指定。
MS-Windows 编译器也有特定的设置。 This Stackoverflow question 提供了多个版本的 Visual Studio IDE 的说明。
CodeBlocks
<div id="cnblogs_post_body"><h2><strong>1<span>介绍</span></strong></h2> <p><span>是一个开放源码的全功能的跨平台</span>C/C++<span>继承开发环境</span></p> <p><span>是开放源码软件</span></p> <p><span>是</span><span>由纯粹的</span>C++<span>语言开发完成,它使用了著名的图形界面库</span><span>wxWidgets(2.6.2unicode)</span><span>版</span></p> <p><span>对于追求完美的</span>C++<span>程序员,再也不必忍受</span><span>Eclipse</span><span>的缓慢</span></p> <p> </p> <p>CodeBlocks<span>优点:</span></p> <p><span>跨平台,</span>windows<span>、</span><span>linux</span><span>都可以用</span></p> <p><span>完全免费</span></p> <p><span>体积小、运行速度快</span></p> <h2><strong>2 VsCode & VStudio & </strong><strong>CodeBlocks</strong><strong><span>比较</span></strong></h2> <p><span>前端开发</span><span>,</span><span>建议用</span><span>简单点的</span> VS Code <span>比较好上手</span></p> <p>C/C++<span>后端开发</span><span>,</span><span>建议用</span>CodeBlocks</p> <p> </p> <p>Visual Studio Code<span>:</span><span>轻量级</span><span>,</span><span>启动快的</span><span>编辑器</span><span>,</span><span>集成</span>Git<span>,</span><span>可通过安装插件实现</span><span>编译、调试等等</span><span>(</span><span>缺点:插件需要自己安装</span><span>)</span></p> <p>Visual Studio Community<span>:</span><span>编辑,</span><span>编译器</span><span>,</span><span>集成开发环境</span><span>,</span><span>运行速度慢,内存占用大</span></p> <p>Visual Studio<span>:</span><span>集成开发环境</span><span>,</span><span>收费软件,运行速度慢,内存占用大</span></p> <p>CodeBlocks<span>:</span><span>相对</span>vs<span>,体积小</span><span>,运行速度快</span><span>,</span><span>免费;</span></p> <p> <span>相对</span>vscode<span>,</span>CodeBlock<span>是开发环境,已有包含插件的安装包,且内存占用小</span></p> <p> </p> <p><span>综上:</span>VsCode<span>、</span><span>VStudio</span><span>支持任何语言开发,</span>CodeBlocks<span>只支持</span>C/C++<span>开发</span></p> <h2><strong>3 window<span>下安装</span></strong></h2> <p><span>百度上搜</span>CodeBlocks<span>,</span><span>进入官网,下载安装包</span>codeblocks-17.12mingw-setup.exe</p> <p><span>双击</span>codeblocks-17.12mingw-setup.exe<span>安装包,按提示一直下一步即可安装完成</span></p> <p> </p> <p><span>注:</span></p> <p>codeblocks-17.12mingw-setup.exe <span>此安装包包括</span><span>codeblocks</span><span>软件及所需要的所有插件(建议安装此包)</span></p> <p>codeblocks-17.12-setup.exe <span>此安装包只是保护</span><span>codeblocks</span><span>软件,不包含插件,需要自己重新安装类似</span><span>mingw</span><span>的插件</span></p> <p><span>上面</span>2<span>个包都是</span><span>binaryrelease</span><span>版</span></p> <h2><strong>4<span>使用指导</span></strong></h2> <h3><strong>4.1 <span>创建项目</span></strong></h3> <p><span>点击</span>file > new > project > console application >console application > go > <span>选</span><span>C/C++ > next</span></p> <p><span>弹出如下<img id="uploading_image_43118" src="https://common.cnblogs.com/images/loading.gif" alt=""></span></p> <p><img src="https://images2018.cnblogs.com/blog/1467813/201808/1467813-20180819105913323-1527750714.png" alt=""></p> <p><span>点击</span>next<span>,弹出如下,注意红色框,点击完成即可</span></p> <p><span><img src="https://images2018.cnblogs.com/blog/1467813/201808/1467813-20180819105926946-1856209527.png" alt=""></span></p> <p><strong>4.2 <span>项目编译运行</span></strong></p> <p><span>红色框内图标分别为:编译、运行、编译运行,重新编译</span></p> <p><span>要执行上面哪个操作,直接点击图标即可</span></p> <p><span><img src="https://images2018.cnblogs.com/blog/1467813/201808/1467813-20180819105942653-1775044679.png" alt=""></span></p> <p><strong>4.3 <span>调试</span></strong></p> <p><span>下图红色框图标,第二个红色框按键是</span>“查看断点各种信息”</p> <p>SHIFT+F7<span>开启</span><span>debug</span><span>模式</span></p> <p><span><img src="https://images2018.cnblogs.com/blog/1467813/201808/1467813-20180819110000423-622223159.png" alt=""></span></p> <p><strong>4.4 <span>打开项目</span></strong></p> <p><span>双击项目目录下的</span>**.cbp<span>文件</span></p> <h2><strong>4.5 </strong><strong><span>已有源码时</span></strong><strong><span>创建项目</span></strong></h2> <p><span>在的情况下如何在</span>codeblocks <span>里建立</span><span>project</span><span>??</span></p> <p>1 <span>建立</span><span>project</span></p> <p>2 <span>加入文件。</span></p> <p><span>具体:第</span>2<span>步中 </span><span> </span><span>把源文件放到</span><span>project </span><span>目录下,加入工程即可。</span></p> <p><span>如何设置命令行参数?</span></p> <p>project->set program''s arguments.</p> <p><span>如何使用现成的</span> makefile<span>?</span></p> <p>1<span>)</span><span>“File -> New -> Project”</span><span>,选择</span><span>“Empty Project”</span><span>并创建。</span><br>2<span>)选中 </span><span>Project</span><span>,右键,选择</span><span>“Add files”</span><span>,将 </span><span>c/c++ </span><span>和 </span><span>head files </span><span>加入工程。</span><br>3<span>)选中 </span><span>Project</span><span>,右键,选择</span><span>“Properties”</span><span>,</span><span>“Project settings”</span><span>选项卡中的</span><span>“Makefile”</span><span>填入</span><span>Makefile </span><span>文件名,并勾选</span><span>“This is a custom Makefile”</span><span>。</span><br>4<span>)选中 </span><span>Project</span><span>,右键,选择</span><span>“Build options”</span><span>,删除</span><span>“"Make" command”</span><span>选项卡中所有的</span><span>“$target”</span><span>。</span></p> <h3><strong>4.6 <span>常用技巧</span></strong></h3> <p><strong><span>改变代码字体大小</span></strong></p> <p><span>键盘上的</span>Ctrl<span>键并滑动鼠标滑轮</span></p> <p> </p> <p><strong><span>整改代码格式</span></strong></p> <p><span>点击</span>Plugins > Source code formatter</p> <p> </p> <p><strong><span>设置编译器</span></strong></p> <p>settings > compiler > Toolchain executables</p> <p><span>出现如下图,点击点击</span>Auto-detect<span>(自动检测)也就是自动检测出</span><span>MinGW</span><span>(</span><span>CodeBlocks</span><span>的编译器)</span><span>之后就能正常使用</span></p> <p><span><img src="https://images2018.cnblogs.com/blog/1467813/201808/1467813-20180819110020372-730244865.png" alt=""></span></p> <p> </p></div>
CodeBlocks (17.12) 代码调试基础方法 & 快捷方式
1 printf 输出代码关键字查找 bug
这个是最简单最容易想到的方法,一般初期开始接触c语言,并用其从事简单代码编辑的时候都会很容易就习惯上这种调试方法,对一些特殊情况的实用率可能是最高的(比如结构难以想象的复杂数据结构之类的)
2 用软件自带的 Split view 来查看
在 CodeBlocks 的编辑界面右键找到 Split view,Horizontally (top-bottom)(上下)、Vertically (left-right)(左右)、Unsplit(恢复)。
这个设置可以将一份代码分到左右进行函数间的对比,查找错误。
3 用 ctrl-B 标记来对比上下行
4 用自带的 Debug 查看程序运行状态
首先我们要知道,CodeBlocks 的 debug 只有在项目里才能用,所以说我们要新建一个项目,CodeBlocks 左上角 File->new->Project->Console application, 然后创建一个 project。而且 debug 功能本身也是要设置的(在不能 debug 的情况限定, 可以用就不需要设置),设置流程 Settings->Debugger...->Default->Executable path-> 自己 CodeBlocks 的安装位置 ->MinGW->bin->gdb32.exe
说起 debug 那就不得不说一下 watches 了,watches 会将所有在有用到的所有变量输出,比如在 for 里才用了的变量 i,当程序运行到 for 外面就不会再出现 i 这个变量了。
先选择自己的主函数位置,选择 Run to cursor 按钮就是在红色的 debug/continue 旁边的按钮,按完如果在界面出现 watches 窗口那么就不要管,没有的话就自己打开:选 CodeBlocks 上方的 Debug->Debugging windows->Watches,这样就会在每次 Debug 的时候自动出现。(注意直接选择 debug/continue 而不设置断点的话,至少在我的程序里的表现是输入相关数据以后直接结束了程序,如果你用 debug/continue 那么就要设置断点,将光标移动到某一行,按 F5 设置断点,那么使用 debug/continue 功能时就会在该断点处停下给你查看 watches,然后你就可以用在 debug/continue 旁边第二个位置的 Next line 功能一步步的从这一步开始往下走。)设置好 watches 以后用 Run to cursor 功能运行程序,这个功能会让你用 Next line 一步步运行完全部代码,和 debug/continue 不同,他是会将全部的参数变化展现在 watches 界面。自己试试就知道。
这里具体介绍了 Debugging windows 里的 Watches,其他的 Debugging windows 窗口都没有怎么用过。以后看情况更新。
5 CodeBlocks 测试时间的两种方法
1 #include<time.h>
2 int main(){
3 clock_t startTime=clock();{
4 //这里是我们要测试的代码;
5 }
6 clock_t endTime=clock();
7 cout<<"运行时间为::"<<endTime-startTime<<"ms"<<endl;
8 }
1 #include<windows.h>
2 int main(){
3 DWORD startTime=GetTickCount();{
4 //这里是我们要测试的代码;
5 }
6 DWORD endTime=GetTickCount();
7 cout<<"运行时间为::"<<endTime-startTime<<"ms"<<endl;
8 }
6 CodeBlocks 部分快捷方式一览
6.1 需要更大编辑空间时,F2 和 Shift+F2 分别可以显隐下方 Logs& others 栏和左方的 Management 栏。
6.2 Ctrl+D 可复制当前行或选中块(直接复制以后添加在后面)。
6.3 Ctrl+Shift+C 注释掉当前行或选中块,Ctrl+Shift+X 则解除注释。
6.4 Tab 缩进当前行或选中块,Shift+Tab 减少缩进。
6.5 可拖动选中块使其移动到新位置,按住 Ctrl 则为复制到新位置。
6.6 shift + f11 全屏;连点两下当前文件的标签,也就是编辑窗口的左上角那个,会将窗口最大化。
6.7 Ctrl+G 到达指定行,ALT+G 到达指定文件(项目里用的),Ctrl+Alt+G 到达指定函数(支持头文件中的函数定义 (可能也是项目里的))。
6.8 Ctrl+PageUp 到达上一个函数,Ctrl+PageDown 到达下一个函数
6.9 Ctrl+Shift+B 可找到匹配的括号。
6.10 看长代码时,可右击,Folding->Fold All,然后慢慢展开来看,也可充分利用左方 Management 栏的 Symbol 浏览器。
6.11 ctrl + . 可以从函数声明处找到函数定义
6.12 F3 用于寻找下一个所选中的语句块
6.13 代码颜色的更改:找到 settings->editor->Syntax highlighting,选择你喜欢的颜色就可以了,最主要的是注释的颜色优点不明显,可以修改 comment 颜色即可,但是注意不要和其他代码的颜色冲突。
6.14 快捷键的更改:找到 settings->editor->keyboard shortcuts,可对一些功能的快捷键进行更改,不过不要与系统本身设置好的冲突(还好冲突时会有提示),更改时要按住相应的快捷键进行过添加,而不是将快捷键名称打出来。
codeBlocks + QT
安装 codeBlocks + QT,按照网上的 step by step 的设置后始终错,
找了好多博文,有说 link是加 -static-lib......,你玛还是报错,手工dos
窗口搞还是不行,最后下了个 libgcc_s_dw2-1.dll 放到 4.8.1 下(copy
\Qt\4.7.4\mingw\bin\libgcc_s_dw2-1.dll to \Qt\4.8.1\mingw\bin\libgcc_s_dw2-1.dll)
面就好了,太你玛扯了。
或者是QtSdk-offline-win-x86-v1_2_1安装后需要同时加入..Qt\4.7.4\mingw\bin
到路径里面,试了试不行,算了,还是cope吧。
今天关于Ubuntu Codeblocks 配置 Eigen Sophus和ubuntu codeblocks不能编译的分享就到这里,希望大家有所收获,若想了解更多关于#include
本文标签: