linux 下怎样用linux eclipse怎么用 编译 c++

Linux开发使用相关(8)
1、首先需要下载需要的安装包JRE和Eclipse,下载地址如下:
&&&&&& & &&Eclipse IDE for C/C++ Developers
, & Linux x86,jre-8u11-linux-i586.rpm
2、进入到软件包目录,运行如下命令,分别安装JRE和解压eclipse:
&&&&&& rpm -ivh jre-8u11-linux-i586.rpm
&&&&&& tar -zxvf eclipse-cpp-luna-R-linux-gtk.tar.gz
3、检查JRE是否安装成功
&&&&& 输入:java -version #显示版本则成功安装
如果在运行./eclipse时出现如下错误:
bash: ./eclipse: cannot execute binary file
则可能是因为系统是32位或者64位,下载的软件包的位数不匹配导致
否则直接./eclipse即可启动eclipse
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:46383次
积分:1051
积分:1051
排名:千里之外
原创:57篇
转载:28篇
(4)(2)(4)(1)(2)(1)(1)(1)(11)(9)(4)(28)(17)ubuntu下使用Eclipse搭建C++开发环境_穆僮博客_新浪博客
ubuntu下使用Eclipse搭建C++开发环境
穆僮电脑小课堂&(QQ群:)摘编整理
&ubuntu下使用Eclipse下搭建开发环境基本上网上教程一大堆,但是复杂度太大,因为很多教程都是从JDK开始安装一直到最后,而且很多都是从别的linux发行版上弄来的方法,各种编译直接吓死人有木有,其实ubuntu的方便之处很大程度上在于atp的使用,抹杀了atp的ubuntu那就太鸡肋了。
​&&&&&&&
OK,正题,再ubuntu下搭建Eclipse C++开发环境。
​&&&&&&&
首先,jdk的问题,ubuntu源里自带Open JDK所以不用非要去装Sun
JDK,如果没有特殊需要完全可以直接跳过。
​&&&&&&&
安装Eclipse,直接
​&&&&&&&&sudo
apt-get&install
​&&&&&&&
ap-get&install
eclipse-pde
&&&&&&&&sudo
ap-get&install&eclipse-jet
​&&&&&&&&
三个命令执行下来基本的eclipse就完成了
然后我们安装c/c++支持,打开Eclipse,在Help,Install New Software,点work
with后面的Add来添加,
Location:http://download.eclipse.org/tools/cdt/releases/indigo
然后再work with中选中新加的CDT,等待刷新之后,选择第一个CDT Main Features,一路Next就好了
安装完成后重启Eclipse,就可以新建C++ project了
如果发现C++工程一堆莫名其妙的错误那么说明没有安装合适的c++编译器,ubuntu自带的gcc编译器是不能编译c++的,我们需要安装g++:
&&&&&&&&sudo
apt-get install g++
之后重启Eclipse就可以了正常编译了​
博客等级:
博客积分:0
博客访问:57,053
关注人气:0
荣誉徽章:温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
编译动态库时遇到relocation R_X86_64_32 against `a local symbol'的错误
编译动态库时遇到如下错误:
... relocation R_X86_64_32 against `a local symbol' can not be used when ma repile with -fPIC
... could not read symbols: Bad value
解决办法编译器已经提示了:recompile with -fPIC
但是我们应该重新编译谁带上这个参数呢?经过我几番折腾,发现如下情况:
1、编译.o文件的时候,没有加参数-fPIC,这问题个在gcc version 3.4.6版本没有发生,可能那个编译器默认都给加上吧。
2、当前程序中有用到某个静态库,那个静态库编译.o文件的时候没有加上-fPIC(静态库其实就是.o文件打包)。
补充一点:我发现手写Makefile时即使不加-fPIC也没有这个问题,这一点很郁闷,这个只在用automake工具编译出.a文件时才出现过。
知道原因了,解决办法自然有了,保证你编译.o文件的时候,都加上-fPIC,这样你才能编译出动态库来。
如下图,注意:编译器和连接器都需要加参数。
编译之后将在工程目录下生成一个libshared.so文件,这就是我们要用的动态链接库文件。
2. 调用动态链接库文件
(1)创建C++工程,选择Executable类型工程
(2)添加Source File,并编写源码
//============================================================================
: Import.cpp
// Version
// Copyright
: Fify copyleft
// Description : Hello World in C++, Ansi-style
//============================================================================
#include &iostream&
using namespace
void show();
int main()
(3)设置导入动态库
Project-&Properties-&C/C++ Build-&Settings-&Tool Settings-&GCC C++ er-&Libraries
添加Libraries (-l): shared
添加Library search path (-L): {刚才编译生成的*.so文件路径}
(4)编译该
3. 运行含动态链接库的程序
点击运行,会出现以下错误:error while loading shared libraries: libShared.so: cannot open shared object file: No such file or directory ,因为无法从默认位置找到动态链接库文件。修改系统默认链接库的路径,程序即可顺利执行,输出:
Shared Library.
关于ubuntu添加共享库路径(解释转载)
/ever__love/blog/item/aa145d1135eba.
关于ubuntu添加共享库路径:
1. 将绝对路径写入
/etc/ld.so.conf
2. 执行 ldconfig 重新记载一遍
***********************************************************************************************************************************
下面是繁琐的解释,愿意看的就看下。。。。。
库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把
和 /usr/lib
两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到
库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用:
  在环境变量 LD_LIBRARY_PATH 中指明库的搜索路径。
  在 /etc/ld.so.conf 文件中添加库的搜索路径。
  将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择
  添加方法也极其简单,将库文件的绝对路径直接写进去就OK了,一行一个。例如:
  /usr/X11R6/lib
  /usr/local/lib
  /opt/lib
  需要注意的是:第二种搜索路径的设置方式对于程序连接时的库(包括共享库和静态库)的定位已经足够了,但是对于
使用了共享库的程序的执行还是不 够的。这是因为为了加快程序执行时对共享库的定位速度,避免使用搜索路径查找共享库的低效率,所以是直接读取库列表文件
/etc/ld.so.cache 从中进行搜索的。/etc/ld.so.cache 是一个非文本的文件,不能直接编辑,它是根据
/etc/ld.so.conf 中设置的搜索路径由 /sbin/ldconfig
命令将这些搜索路径下的共享库文件集中在一起而生成的(ldconfig 命令要以 root 权限执行)。因此,为了保证程序执行时对库的定位,在
/etc/ld.so.conf 中进行了库搜索路径的设置之后,还必须要运行 /sbin/ldconfig 命令更新
/etc/ld.so.cache 文件之后才可以。ldconfig
,简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache
以供使用。因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下
/sbin/ldconfig使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用
的,结果编译过程中抱错,缺少xxx库,去查看发现明明就在那放着,搞的想大骂computer蠢猪一个。
  在程序连接时,对于库文件(静态库和共享库)的搜索路径,除了上面的设置方式之外,还可以通过 -L 参数显式指定。因为用 -L 设置的路径将被优先搜索,所以在连接的时候通常都会以这种方式直接指定要连接的库的路径。
  前面已经说明过了,库搜索路径的设置有两种方式:在环境变量 LD_LIBRARY_PATH 中设置以及在
/etc/ld.so.conf
文件中设置。其中,第二种设置方式需要 root 权限,以改变 /etc/ld.so.conf 文件并执行
/sbin/ldconfig
命令。而且,当系统重新启动后,所有的基于 GTK2 的程序在运行时都将使用新安装的 GTK 库。不幸的是,由于
版本的改变,这有时会给带来兼容性的问题,造成某些程序运行不正常。为了避免出现上面的这些情况,在 GTK
及其依赖库的安装过程中对于库的搜索路径的设置将采用第一种方式进行。这种设置方式不需要 root 权限,设置也简单:
  $ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
  可以用下面的命令查看 LD_LIBRAY_PATH 的设置内容:
  $ echo $LD_LIBRARY_PATH
  至此,库的两种设置就完成了。
阅读(1923)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Linux环境下使用eclipse开发C++动态链接库程序[转]',
blogAbstract:'Linux环境下使用eclipse开发C++动态链接库程序[转]\nLinux中也有类似
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}相信大家都想在Eclipse下运行C、C++程序,可又无奈不知道怎么配置,谷歌了好长时间也只是百度到了gcc环境下的配置方式,下了三四个软件包,到最后还是配置失败了。
那么我现在介绍的这种方式呢,不是基于GCC编译器,而是基于VC的。
你需要下载Eclipse for C++版本的包,当然你也可以自己装插件(我是不推荐,除非你闲的蛋疼,有现成的干嘛不用,装逼啊?)
下载地址:
官方下载地址:
http://www.eclipse.org/downloads/
那么下载完后呢,解压就点击 eclipse.exe即可运行
,当然在运行之前你必须安装JDK,Eclipse乃Java编写,需要JRE运行环境才可。
单机工程名,右键新建SourceFile添加一个C语言文件,编写一个简单的HelloWorld程序。
运行结果:Windows下用Eclipse搭建C/C++开发环境 - 青年人,应该做怎样的青年人 - ITeye技术网站
博客分类:
本文假定你已经熟悉Java,Eclipse的安装,并能顺利启动和运行Eclipse.此外因为各软件版本在不断更新,有些地方可能不准确,以最新的、原文资料为准。
距上一次写和调C++程序,已经5、6年了,光阴荏苒岁月无情,现在再重新拾起来,很多东西都要从头来。Windows下C/C++的IDE有很多,我知道的就有MS Visual Studio,Borland C++等,但这些是要版权的。不要钱也有一些,但因为对Eclipse太熟了,所以就选下面要讲的Eclipse + GNU toolchain(话说toolchain这个词很形象).
1. 首先下载Eclipse for C++, 最新版是基于Eclipse 3.5.1的,叫做galileo(伽利略),上个版本3.4貌似叫做ganymede(木卫三)。下载地址:http://eclipse.org/downloads/,选择32bit for windows,文件名叫 eclipse-cpp-galileo-SR1-win32.zip
2. 解压,直接运行。注意,至少JDK你已经安装了(我用的是JDK1.6)。运行后一个灰蓝色的welcome页面出现,进入Tutorials。学东西先读Tutorial是个好习惯。
3. 首先了解一下什么是CDT,就是 C/C++ Development Toolkit,bulabula... 然后它说,这个东西没包含C/C++的编译器、调试器,你得自己弄。
4. 那就继续看。Windows下,MinGW和Cygwin 是获取GNU toolchain的2种主要方式(GNU toolchain,GNU下一系列的工具包,我的理解主要是gcc这一系列工具)。这两者最大的区别是MinGW使用Windows C的运行库,叫做mscvrt,而Cygwin使用了一组基于GPL的DLLs(GPL协议具有传染性,使用GPL协议下的软件后你自己开发的东西也要遵守GPL协议),因此MinGW避开了GPL协议。
5. MinGW和CDT能很好的整合。好吧,我们装MinGW(MinGW是Minimal GNU for Windows的意思,这个下载过程相当慢,我下了大半个小时)。当前版本是MinGW-5.1.6.exe,我一股脑来了个Full install。装完后才发现这么一句:Do not install the MinGW Make feature as the MSYS version of make from step 5 is a more complete implementation of make.(不要安装MinGW的Make, 第5步的MSYS是个更好的实现方案)
6. 为了避免将来可能遇到的问题,卸了重装。这里是完整的安装步骤:
1)下载MinGW,地址 http://sourceforge.net/projects/mingw/files/
2)安装MinGW base tool和g++编译器(不要安装Make);我把除了Make之外的都装了,里面居然还有个Ada的编译器
3)当前版本(它是指MinGW-5.1.3,不过我下的5.1.6同样也没有)没有装gdb debugger, 下载它:http://downloads.sourceforge.net/mingw/gdb-6.6.tar.bz2
4)解压gdb-6.6.tar.bz2 到你安装MinGW的地方,gdb-6.6/下也有一系列bin,inclue文件夹,直接拷到MinGW下面覆盖进去即可
5)如果要用Makefile,请下载 MSYS-1.0.10.exe,MSYS是make及命令行的一个实现。嗯,要用。下载地址 http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe
安装界面是个命令界面,写2个”y”,然后告知MinGW的安装路径即可。
OK,安装部分就完成了。下面写2个小例子。
7. 首先创建一个简单的HelloWorld C++工程,这个很简单,按Wizard向导建一个模板即可。
Run的时候选Run Configurations, 然后双击C/C++ application建一个新的run configuration就行。
8. 下面建一个Makefile类型的工程。选择New C++ Project -& Makefile project -& Empty Project, 我们建一个空的项目,建完后里面什么也没有(除了2个.project文件),这时,我们要建一个源文件和一个make文件:main.cpp 和 makefile,如下,都建到根目录下:
* main.cpp
#include &iostream&
int main () {
// Say Hello five times
for (int index = 0; index & 5; ++index)
cout && "HelloWorld!" &&
char input = 'i';
cout && "To exit, press 'm'" &&
while(input != 'm') {
cout && "You just entered " && input
&& " you need to enter m to exit." &&
}
all: hello.exe
rm main.o hello.exe
hello.exe: main.o
g++ -g -o hello main.o
g++ -c -g main.cpp
注意,makefile里的行首缩进用的是Tab而不是空格。如果编译时提示 No separator...就是这里有问题。
9. Ok, 选中工程,点Build(或点那个小锤子),你会发现这个错误:(Cannot run program "make": Launching failed),啊,我们的make.exe还没设。选中工程,直接Alt-Enter到工程属性页,把msys的bin加到Path里。
10. 重新build, 大功告成。
浏览 48185
论坛回复 /
(33 / 184703)
很深奥啊.
C/CPP只有在大学的时候听说过. 毕业后就一直搞java了 = =\惭愧
同样惭愧啊。
很烂的plug-in,装了之后我的apanta就奇怪百出。
应该是apanta的bug
这个是for standard eclipse sdk的。不知apanta搞了什么特殊的修改。。。。
Eclipse开发C有个很头疼 的问题:
运行下这个最基本的程序:
int main(void) {
printf("input a int:");
scanf("%d", &i);
printf("i = %d", i);
}
Console中等你先输完值后,"input a int:"这句话才显示。汗。
必须在scanf前面加fflush(stdout);才行。
int main(void) {
printf("input a int:");
fflush(stdout);
scanf("%d", &i);
printf("i = %d", i);
}
狂汗~~~~~~~~~~~
就是这样子啊
printf是按照\nflush的。
否则是在buffer里的。。。
Eclipse开发C有个很头疼 的问题:
运行下这个最基本的程序:
int main(void) {
printf("input a int:");
scanf("%d", &i);
printf("i = %d", i);
}
Console中等你先输完值后,"input a int:"这句话才显示。汗。
必须在scanf前面加fflush(stdout);才行。
int main(void) {
printf("input a int:");
fflush(stdout);
scanf("%d", &i);
printf("i = %d", i);
}
狂汗~~~~~~~~~~~
在 我 的 eclipse3.5 cdt下 没y有你 说的 情况
& 上一页 1
浏览: 254542 次
来自: 大西洋底
问题果然解决了,太感谢了
因为不是每个subclass都执行Cloneable吧。
写的不错 这个东西晕死一堆人。
jkleeo 写道很深奥啊.
C/CPP只有在大学的时候听说过 ...
看来你也是四国军棋爱好者,啥时候切磋一下

我要回帖

更多关于 linux eclipse 下载 的文章

 

随机推荐