在Eclipse编译调试aria2c开源库
前言 经过了对ara2c项目makefile的编写,接下来尝试将aria2c项目搬到eclipse上(Linux:Ubantu),方便调试。(不依赖IDE调试的话,目前还不熟练,因此为了加快对项目的理解,使用IDE对其进行调试)。一、安装Eclipse1 安装Eclipse 在Terminal中输入以下命令测试是否安装了Eclipse:eclipse如果没有安装,系统
前言
经过了对ara2c项目makefile的编写,接下来尝试将aria2c项目搬到eclipse上(Linux:Ubantu),方便调试。(不依赖IDE调试的话,目前还不熟练,因此为了加快对项目的理解,使用IDE对其进行调试)。
一、安装Eclipse
1 安装Eclipse
在Terminal中输入以下命令测试是否安装了Eclipse:eclipse
如果没有安装,系统会提示你使用什么命令去安装eclipse,如下命令即可安装所需要的JDK等其他依赖关系:
sudo apt install eclipse-platform
此时安装完的Eclipse应该是默认隐藏了菜单栏的,参考Ubuntu中Eclipse的菜单栏显示问题即可。
sudo gedit /etc/profile
在文件最后添加export UBUNTU_MENUPROXY=0 保存并重启系统,即可在菜单栏中看到Eclipse的图标。
2 配置C/C++开发环境
使用如下命令:sudo apt-get install build-essential
sudo apt-get install eclipse-cdt
重启Eclipse即可创建C/C++项目进行测试了。
3、测试
新建一个项目:File->New->C++Project->Executable->Empty Project。 填写项目名称:cpptry
Toolchains (这个跟编译器相关,如果是mingw选择Cross, 如果是gnu选择Linux GCC):Cross GCC,如下图。
完成连续下一步即可完成项目建立。
右击项目添加一个source File, 名为main.cpp
/*
* main.cpp
*
* Created on: Apr 20, 2018
* Author: cong
*/
#include<stdio.h>
int add(int first, int second)
{
return first + second;
}
int main()
{
printf("hello\n");
int first,second;
scanf("%d%d",&first, &second);
printf("%d + %d = %d", first, second , add(first, second));
return 0;
}
最后制定编译器(最关键的一步)。比如可以指定x86_64-w64-mingw32-gcc或者x86_64-linux-gnu-gcc(gcc),这两者是64bit。右击项目Project->Properties,在弹出的框中点C/C++Build->Settings,将GCC C Compiler,GCC C++ 、Linker和Assembler的命令分别换成x86_64-w64-mingw32-gcc, x86_64-w64-mingw32-g++、x86_64-w64-mingw32-g++和x86_64-w64-mingw32-as,可能直接填x86_64-w64-mingw32-gcc编译就会提示x86_64-w64-mingw32-gcc not found。如果这样,需要把对应命令完整路径填入其中。
//便可以知道指定编译器所在路径
which x86_64-w64-mingw32-gcc
二、配置aria2c项目
前提系统安装好相应库文件,详细看:https://blog.csdn.net/qq_33850438/article/details/80199588
完成了前面的配置,剩下的就比较简单了,不过比较繁琐。下面以x86_64-w64-mingw32为例子讲述(注意,生成的exe只能在windows上运行,想要在下调试Linux,需要配置x86_64-linux-gnu,这两者大同小异。我都试过)
这个项目刚开始编译的时候,也没有一气呵成,导入所需要源文件,剔除不需要源文件等等。
然后根据configure和makefile.am文件,可以很好知道系统已经准备的安装环境。这时就可以哪些文件需要加入编译,哪些不需要。./configure执行结果如下图:
从上图也可以看出编译链接的时候需要什么样选项参数。接下来配置项目的编译参数。
1、项目整体结构(红色方框)
2、项目Cross GCC Compiler编译配置。(-I制定头文件路径)
3、项目Cross G++ Compiler编译配置。
4、项目Cross G++ Linker链接配置。(-L制定一些库文件路径。-l制定库文件)
5、Cross GCC Assembler汇编配置。
至此,此项目基本配置完成,后续遇到问题,需要自己慢慢思考,都是可以解决。
(可以参考项目自动生成makefile文件。将其makefile执行过程的语句打印出来分析,make -n 。 这样可以清楚看到自动生成的makefile如何编译链接项目的,这样我们就可以更加方便配置Eclipse的参数)
三、总结收获
通过编写makefile,可以清楚的知道编译项目生成每一个文件的过程,所需要的库文件,路径、编译链接参数等等。使用IDE,正是配置这些参数,使其编译链接工作也是有条不紊的执行。可以通过观察IDE编译窗口,清晰看到这一点。
在编译或者链接的过程出现问题,都可以有针对性的分析解决。(因此,还是有必要学习makefile)
四、参考
Eclipse配置:https://blog.csdn.net/colin_lisicong/article/details/70939143
https://blog.csdn.net/wang_shuai_ww/article/details/17227145
aria2c的makefile文件编写:https://blog.csdn.net/qq_33850438/article/details/80009669
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)