linux make 编译 linux编译c文件

linux下的make命令使用问题

打错了罢?是make&& make intall

&&是 shell的逻辑 and(和),如果前面的命令执行失败,(true or flase)

退出状态不是 0,就不会执行后面的命令,

最后命令的退出状态会在 shell默认变量$?找到,例

nc10@your-5554c55be4~

$ ls

Mail/ doc/ hh* matrix/ sign.dat trash

News/ ee* junk numsorted* socket.awk* ttt.awk*

bin/ ex30.sh* lib/ pp* software/

crack_allword.txt hex2dec.awk lynx.cfg sign tmp/

nc10@your-5554c55be4~

$ test-f"pp"&& echo"yes, you have it"

yes, you have it

nc10@your-5554c55be4~

$ echo$?

0

nc10@your-5554c55be4~

$ test-f"lllll"&& echo"yes, you have it"

nc10@your-5554c55be4~

$ echo$?

1

nc10@your-5554c55be4~

$

第二次执行测试文件 lllll,没有这文件, test名令执行失败,

(条件为假(flase)),随后的命令就不执行

nc10@your-5554c55be4~

$ test-f"lllll"; echo"yes, you have it"

yes, you have it

nc10@your-5554c55be4~

$

分开两个命令,那不管前面执行如何,随后的还是会执行

如果分成两 make; make install,那make编译有错误的话,还是会照样

install,但安装的程序不能用哦.

Is that clear?:)

make是linux的自带的还是需要安装编译器才有make功能

make程序不是Linux系统自带的,也不是编译器带的,不要按照IDE的概念去理解(Windows下面的IDE一安装什么工具都有了),make工具是需要另外安装的。

比如说我的Linux系统上,当时搭建开发环境时是这样安装的:(我的系统是Fedora,所以用的yum)

yum install make gcc gcc-c++

看,编译器和make是分开安装的哈。

make工具是需要makefile的时候才用,而makefile是多个源文件的时候才有,如果你编译一个helloworld程序,直接用gcc或g++编译就可以了,从这点来看,也没理由把make和编译器捆绑在一起。

linux下将程序中用到的第三方库编译到自己的程序中我在linu

在开发过程中,我们有时需要依赖第三方库来扩展程序的功能。以下是如何处理第三方库在不同情况下的操作步骤。

首先,我们来看最佳情况——头文件和源文件。这种情况下,你只需要引用头文件并调用相关函数即可。例如,如果第三方库的头文件是abc.h,函数名是abc_test(),你只需要在代码中添加#include"abc.h",然后直接调用abc_test()函数。编译时,需要在Makefile中加入编译选项-I/abc/include,以便编译器能够找到库的头文件。这样的程序在运行时不需要额外的第三方库。

接下来是静态链接库的情况。在这种情况下,你同样需要引用头文件和相关函数,但此时你需要使用静态库libabc.lib。编译时,需要在Makefile中加入两个编译选项:一是-I/abc/include,用于将库的头文件包含进来;二是-L/abc/lib-labc,用于链接静态库。程序在运行时不再需要这个第三方库。

最后是动态链接库的情况。设动态链接库为libabc.so。调用动态链接库文件需要使用dlopen等函数。编译时,同样需要在Makefile中加入两个编译选项:一是-I/abc/include,用于包含库的头文件;二是-L/abc/lib-labc,用于链接动态库。但需要注意的是,程序在运行时需要这个第三方库的libabc.so文件。

以上是在不同情况下处理第三方库的步骤。在实际开发中,根据具体需求选择合适的库和链接方式,可以大大提高开发效率和程序的稳定性。

阅读剩余
THE END