重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

linux源程序包命令 linux软件源

linux 怎么编译c的源程序的?gcc,编译命令是什么?

编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,

创新互联于2013年创立,先为湖口等服务建站,湖口等地企业,进行企业商务咨询服务。为湖口企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:gcc -o hello hello.c

命令:gcc -c hello hello.c

扩展资料:

gcc命令的基本用法

gcc[options] [filenames]  

其中,filenames为文件名;options为编译选项。

当不使用任何编译选项编译hello.c时,gcc将会自动编译产生一个a.out的可执行文件:

[root@localhost c]# ls  

hello.c  

[root@localhost c]# gcc hello.c  

[root@localhost c]# ls  

a.out  hello.c 

执行:

[root@localhost c]# ./a.out  

Hello, World! 

使用-o编译选择,可以为编译后的文件指定一个名字:

[root@localhost c]# ls  

a.out  hello.c  

[root@localhost c]# gcc hello.c -o hello  

[root@localhost c]# ls  

a.out  hello  hello.c  

执行:

[root@localhost c]# ./hello  

Hello, World! 

注意:使用-o选项时,-o后面必须跟一个文件名,即:-o outfile。

为了便于描述后面的选项,删除hello和a.out可执行文件。

linux中源代码包安装的基本步骤是什么?

详解linux源码包安装过程

1. 解压缩包

可以通过下载或其他方式获得了一个软件包,通常它是一个压缩文件,大部分可能是存档的和压缩的,这些文件一般以 .tar .gz为扩展名。

首先拷贝它到一个目录,然后 untar 和 gunzip 解压它。 通常这个命令是

tar xzvf filename [filename 是软件文件名称]

解压后的文件一般会在当前目录下的创建子目录,并以这个包名来命名。 你也可以用用这个命令预先查看结果 tar tzvf filename,显示包里有那些解压文件。

源文件如果是新的 bzip2 (.bz2) 格式,可用

bzip2 -cd filename | tar xvf -,或更简单的 tar xyvf filename ,这很不错的tar命令被不断的完善。

说明:

A:有时候一些文件必须安装在用户的 home 目录下,或更多的是在一个固定的目录,比如 /, /usr/src, 或 /opt 。所以必须仔细阅读安装包的配置信息。当一个软件包里如果有config 和 Makefiles 文件则最好去编辑它,这里包括了安装指令和说明。提示:你改变 makefile 会导致不同的结果。大部分软件包允许用 make install 自动处理安置二进制文件在适当的系统位置。

B:你可能碰到过一些共享文件、shell 存档文件、尤其是 Internet 上的源码新闻组。它们保留的原因是具有人性化的可读性,并且允许新闻组缓冲并通过它们筛选和剔除出不合格的。它们可能用 unshar filename.shar 命令来解压。

C: 一些源码存档文件是用非标准的 DOS,Mac 或其他压缩的比如:

zip, arc, lha, arj, zoo, rar, and shk.

D: 有时候,你可能需要使用一个 patch 或显示改变了的 diff 文件来升级或修复存档的源码文件。这 doc 文件或者 README 文件将告诉你怎么去使用。一个很好的命令用标准语法来调用的命令是 patch patchfile.

2: 关于 rpm 安装包

一些 Linux 用户惧怕通过使用源码来手动安装软件包,不过现在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安装运行平稳又快,作为一个软件安装在某几个有名的操作系统。

作为方便的RPM包也存在很多不好的缺点,例如:

A: 要了解软件中更多更详细的内容你必须去在二进制中去了解,而不是rpm包。

B: 还有安装一个 rpm 包如果需要依赖关系那么安装就可能会导致失败。

C: 当 rpm 请求你系统中不同版本的库,那么安装将不能继续,除非你为错误的库位置创建连接符号到正确的位置。

说明:必须使用root 安装 rpm 和 deb 。因为它需要必须的写入权限。

最简单的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 会自动解包和安装。

3:关于安装 Linux 包出现的一些问题及解决方案

假设 make 失败有个链接错误: -lX11: No such file or directory,正好在 xmkmf 之后已被调用,这可能意味着 Imake 不能被完全建立。检查第一部分 Makefile 文件的的行是这样:

· LIB= -L/usr/X11/lib

· INCLUDE= -I/usr/X11/include/X11

· LIBS= -lX11 -lc -lm

这个 -L 和 -I 开关告诉编译器和链接分别在哪里找到 library 和 include 文件。在这个例子里, X11 库应该在 /usr/X11/lib 目录,且 X11 包含文件应该在 /usr/X11/include/X11 目录里。假如对于你的机器上的这个错误,请处理修改 Makefile 并重新再 make。

没有声明涉及的数学库函数,像下列各项:

/tmp/cca011551.o(.text 0x11): undefined reference to `cos'

要修复它,需要明确链接到匹配的库,在 Makefile (看先前的例子) 里增加一个 -lm 到 LIB 或 LIBS 标记 。

用其他方法尝试

仍然失败 如果失败,参考下列脚本:

make -DUseInstalled -I/usr/X386/lib/X11/config

这个直接方式的类别相当于。

在少数例子里,用 root 运行 ldconfig 可能会解决:

# ldconfig 更新共享库链接符号。

一些 Makefiles 使用你系统里未被承认的库别名。一个例子,构建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或链接。然而,在那里是 libX11.so.6.1。解决方法是用 root 运行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接着需要运行 ldconfig 。

有一些包需要你安装一个或更多库的升级版本。需要拷贝一个或更多的库到适当的目录里,删除旧的库,重新设置动态链接库。

4:一些其他的问题处理

安装一个shell 脚本如果出现:No such file or directory 的错误消息。这是可以检查文件权限确定文件事可执行的,并检查文件头确定是否 shell 或程序是脚本在指定的位置被调用。一个例子,这个脚本可能是这样开始的:

#!/usr/local/bin/EDEN

如EDEN的实际安装位置是在你的 /usr/bin 目录,用一个 /usr/local/bin 替代

这个脚本不能运行有两个方法来纠正!!

A: 文件头改成 #!/usr/bin/EDEN

B: 或增加一个链接符, ln -s /usr/bin/EDEN

5:一个典型的例子 Xloadimage

首先说明下面的例子来源于国外网站的一个技术实例,这里我做了翻译和整理。

这个例子展现一个简单的问题。xloadimage 程序对我的图形工具的调整设置是有用的附加。从源码目录拷贝文件,用 tar xzvf 解压文件,可是在运行 make 的时候出现令人讨厌的错误并停止了。

gcc -c -O -fstrength-reduce -finline-functions -fforce-mem

-fforce-addr -DSYSV -I/usr/X11R6/include

-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

In file included from /usr/include/stdlib.h:32,

from image.h:23,

from xloadimage.h:15,

from mcidas.c:7:

/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:

conflicting types for `wchar_t'

/usr/X11R6/include/X11/Xlib.h:74: previous declaration of

`wchar_t'

make[1]: *** [mcidas.o] Error 1

make[1]: Leaving directory

`/home/thegrendel/tst/xloadimage.4.1'

make: *** [default] Error 2

这个错误消息包含了实质的线索:

查看 image.h 文件的 23 行:

#include stdlib.h

在源码的某处对于 xloadimage, wchar_t 已经在指定标准 include 文件重新定义。 告诉我们首先在 image.h 的 23 行尝试注释它,或许 stdlib.h include 是不存在的,毕竟不是所有都是必需的。

在这点,构建中的收益来源于所有任何一个致命错误。xloadimage 现在功能正常。

6: 安装 Linux 包的一些总结

坚持自己动手处理所有的安装出现的问题,不断总结努力学习,从错误里去仔细研究,努力动手排错,从每个不足甚至失败的地方得到扩充和提升,可以增强安装构建软件的技巧。

Linux中make, make install命令分别是什么,用法?

make是用来编译的,它从Makefile中读取指令,然后编译。

make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

用法:

1、make:

这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

如果 在 make 过程中出现 error ,就要记下错误代码(注意不仅仅是最后一行),然后可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址)。

或者系统少了一些依赖库等,这些需要自己仔细研究错误代码。

make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能。

比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。

make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。

一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。

2、make install

这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。

扩展资料

当我们在使用make命令时,常常会在make后面加上其他单词,比如check,install,installcheck…这些单词都是make的参数,我们称之为“目标(targets)”。

最常见的几个目标:

make all:编译程序、库、文档等(等同于make)

make install:安装已经编译好的程序。复制文件树中到文件到指定的位置

make unistall:卸载已经安装的程序。

make clean:删除由make命令产生的文件

make distclean:删除由./configure产生的文件

make check:测试刚刚编译的软件(某些程序可能不支持)

make installcheck:检查安装的库和程序(某些程序可能不支持)

make dist:重新打包成packname-version.tar.gz

linux必学的60个命令

Linux必学的60个命令:

安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;

系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

Linux的优点

1、Linux由众多微内核组成,其源代码完全开源;

2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;

3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;


分享标题:linux源程序包命令 linux软件源
网站路径:http://cqcxhl.cn/article/ddddiid.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP