GVKun编程网logo

Ubuntu Codeblocks 配置 Eigen Sophus(ubuntu codeblocks不能编译)

1

对于想了解UbuntuCodeblocks配置EigenSophus的读者,本文将是一篇不可错过的文章,我们将详细介绍ubuntucodeblocks不能编译,并且为您提供关于#include失败,#

对于想了解Ubuntu Codeblocks 配置 Eigen Sophus的读者,本文将是一篇不可错过的文章,我们将详细介绍ubuntu codeblocks不能编译,并且为您提供关于#include 失败,#include "Eigen/Dense" 成功 - 为什么?、CodeBlocks、CodeBlocks (17.12) 代码调试基础方法 & 快捷方式、codeBlocks + QT的有价值信息。

本文目录一览:

Ubuntu Codeblocks 配置 Eigen Sophus(ubuntu codeblocks不能编译)

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 添加到搜索路径

  • 将 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 <Eigen/Dense> 失败,#include

#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

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>&nbsp;</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 &amp; VStudio &amp; </strong><strong>CodeBlocks</strong><strong><span>比较</span></strong></h2> <p><span>前端开发</span><span>,</span><span>建议用</span><span>简单点的</span>&nbsp;VS&nbsp;Code&nbsp;<span>比较好上手</span></p> <p>C/C++<span>后端开发</span><span>,</span><span>建议用</span>CodeBlocks</p> <p>&nbsp;</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&nbsp;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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <span>相对</span>vscode<span>,</span>CodeBlock<span>是开发环境,已有包含插件的安装包,且内存占用小</span></p> <p>&nbsp;</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>&nbsp;</p> <p><span>注:</span></p> <p>codeblocks-17.12mingw-setup.exe &nbsp;<span>此安装包包括</span><span>codeblocks</span><span>软件及所需要的所有插件(建议安装此包)</span></p> <p>codeblocks-17.12-setup.exe &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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 &gt; new &gt; project &gt; console application &gt;console application &gt; go &gt; <span>选</span><span>C/C++ &gt; 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>&nbsp;</span><span>把源文件放到</span><span>project </span><span>目录下,加入工程即可。</span></p> <p><span>如何设置命令行参数?</span></p> <p>project-&gt;set program''s arguments.</p> <p><span>如何使用现成的</span> makefile<span>?</span></p> <p>1<span>)</span><span>“File -&gt; New -&gt; 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>&nbsp;</p> <p><strong><span>整改代码格式</span></strong></p> <p><span>点击</span>Plugins &gt; Source code formatter</p> <p>&nbsp;</p> <p><strong><span>设置编译器</span></strong></p> <p>settings &gt; compiler &gt; 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>&nbsp;</p></div>

CodeBlocks (17.12) 代码调试基础方法 & 快捷方式

CodeBlocks (17.12) 代码调试基础方法 & 快捷方式

 

1       printf 输出代码关键字查找 bug

这个是最简单最容易想到的方法,一般初期开始接触c语言,并用其从事简单代码编辑的时候都会很容易就习惯上这种调试方法,对一些特殊情况的实用率可能是最高的(比如结构难以想象的复杂数据结构之类的)

 

 

2       用软件自带的 Split view 来查看

  在 CodeBlocks 的编辑界面右键找到 Split view,Horizontally (top-bottom)(上下)、Vertically (left-right)(左右)、Unsplit(恢复)。

  这个设置可以将一份代码分到左右进行函数间的对比,查找错误。

 

 

 

 

3       用 ctrl-B 标记来对比上下行 

  在很多 IDE 里面都有标记的功能,这个软件也不例外,用 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

    安装 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 Sophusubuntu codeblocks不能编译的分享就到这里,希望大家有所收获,若想了解更多关于#include 失败,#include "Eigen/Dense" 成功 - 为什么?、CodeBlocks、CodeBlocks (17.12) 代码调试基础方法 & 快捷方式、codeBlocks + QT等相关知识,可以在本站进行查询。

本文标签: