Ⅰ linux下怎么 调用 和生成 静态库
Linux库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。 ln -s libhello.so.1.0 libhello.so.1 ln -s libhello.so.1 libhello.so 动态库和静态库的区别: 当要使用静态的程序库时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功,静态程序库也就不再需要了。然而,对动态库而言,就不是这样。动态库会在执行程序内留下一个标记‘指明当程序执行时,首先必须载入这个库。由于动态库节省空间,linux下进行连接的缺省操作是首先连接动态库,也就是说,如果同时存在静态和动态库,不特别指定的话,将与动态库相连接。 两种库的编译产生方法: 第一步要把源代码编绎成目标代码。以下面的代码hello.c为例,生成hello库: /* hello.c */ #include void sayhello() { printf("hello,world\n"); } 用gcc编绎该文件,在编绎时可以使用任何全法的编绎参数,例如-g加入调试代码等
Ⅱ linux怎么把文件夹弄成svn库
你得创建一个svn库
svnadmin create /var/www/
然后把文件放进去然后再commit就可以了
Ⅲ [求助-西门子PLC200]200PLC程序 给别人,他不能打开里面内容查看,但是他可以用该程序 .
最好的办法是:1,通过加密POU主程序(OB1),这样没有密码是打不程序的,只能下载。2,把子程序做成库文件,能用子程序的全部用库文件形式做出来,这样即使别人有密码都无法打开,因为只有源程序才能识别打开。这样做了就天衣无缝,别人连看都没的看,更就不用担心会修改程序了。POU的加密是在编程软件里的---查看--属性。子程序做成库是在编程软件里的---文件---新建库。如图:《西门子 S7-200?LOGO!?SITOP 参考》V0.92版(更新版)(2008.02.15) 下载: http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0136查看---用户自定义指令库,有详细介绍。 查看更多答案>>
Ⅳ LInux 如何使用GCC编译器将一个文件夹下的100个.o文件打包成一个静态库文件(.a)
你已来经用gcc编译出目标文件自了,用ar工具打包成.a文件就行了啊,示例:
如上图,假设我有test1.c,test2.c两个源文件,先使用gcc -c *.c将源文件编译成目标文件,可以看到,生成了test1.o,test2.o两个目标文件,然后,使用ar命令:ar crv libtest.a *.o将该目录下的所有目标文件打包生成了libtest.a文件。这样,你在编译的时候就可以直接使用这个静态库了。
Ⅳ Linux 可执行程序 配置文件 动态库 怎么打包成一个软件
tar? 或者参考den,redhat 他们的包管理软件.(复杂一些).
无非就是将各个文件放到指定的地方罢了.
tar --exclude=".svn" --exclude=".git" \
-hczf dist.tar.gz -C $(DIST_DIR) . \
--numeric-owner --owner=0 --group=0
在target上运行以下指令以解压包:
gzip -dc dist.tar.gz
tar -xvf - -C /
你试下可以不,如果你想学习更多的linux的知识的话你可以去看下http://www.linuxprobe.com/chapter-00.html希望对你有帮助啊
Ⅵ 怎么在Linux中eclipse建立自己的库
建立自己的库?问得太含糊了,是创建一个生成linux库文件的工程?还是其他?
Ⅶ 如何在linux下用matlab生成动态链接库
首先如何制作Linux下的so 文件
首先让我们来看一下,把库函数推迟到程序运行时期载入的好处:
1.可以实现进程之间的资源共享。
什么概念呢?就是说,某个程序的在运行中要调用某个动态链接库函数的时候,操作系统首先会查看所有正在运行的程序,看在内存里是否已有此库函数的拷贝了。如果有,则让其共享那一个拷贝;只有没有才链接载入。这样的模式虽然会带来一些“动态链接”额外的开销,却大大的节省了系统的内存资源。C的标准库就是动态链接库,也就是说系统中所有运行的程序共享着同一个C标准库的代码段.
2.将一些程序升级变得简单。用户只需要升级动态链接库,而无需重新编译链接其他原有的代码就可以完成整个程序的升级。Windows 就是一个很好的例子。
3.甚至可以真正坐到链接载入完全由程序员在程序代码中控制。
程序员在编写程序的时候,可以明确的指明什么时候或者什么情况下,链接载入哪个动态链接库函数。你可以有一个相当大的软件,但每次运行的时候,由于不同的操作需求,只有一小部分程序被载入内存。所有的函数本着“有需求才调入”的原则,于是大大节省了系统资源。比如现在的软件通常都能打开若干种不同类型的文件,这些读写操作通常都用动态链接库来实现。在一次运行当中,一般只有一种类型的文件将会被打开。所以直到程序知道文件的类型以后再载入相应的读写函数,而不是一开始就将所有的读写函数都载入,然后才发觉在整个程序中根本没有用到它们
步骤:
首先建立一个函数文件fun.cpp 以及头文件 fun.h
[cpp]view plain
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/你的库目录
更改/etc/ld.so.conf,添加我们的库目录,然后执行ldconf
需要root权限
(3)加入/user/lib 或者/usr/lib64看你的机器位数,貌似拷贝的方法最凑效了,其他方法有时候行不通
Ⅷ linux怎样将开源软件做成动态链接库
tar.gz 是用tar命令将源码文件打包成一个文件,然后用zip命令压缩成一个压缩包,所以在安装前要解压缩,命令如下:tar -xvzf test.tar.gz完成后会生成一个解压缩后的目录,进入该目录,查看readme文件或者install文件,里面有详细的安装命令。一般的安装步骤是./configure 回车make 回车make install 回车make clean 回车如果configure没有通过,说明你的系统环境没有达到要求,该软件所依赖的文件没有被安装,需要根据提示信息来具体分析。以上的各个命令只是最常用的使用方式,还有比较实用的参数没有介绍,可以自己查看帮助文档。
Ⅸ 怎么在linux下将自己的C++程序封装成库文件
GCC是Linux操作系统下一个非常重要的源代码编译工具,C、C++都可以通过gcc编译后来执行,案例如下: 在屏幕上打印"Hello,Linux." #include#includeint main(int argc,char **argv) { printf("Hello,Linux.\n"); exit(0); }将源文件保存为hello.c...
Ⅹ linux下将程序中用到的第三方库编译到自己的程序中
举例,头文件名 abc.h 函数名为 abc_test(); 第三方库头文件目录为/abc/include/ 链接库目录为/abc/lib/ 1、头文件和源文件:这是最好的情况,引用头文件和相关函数即可。 如:#include "abc.h" abc_test();//直接调用即可 编译时,Makefile中加入编译选项 -I/abc/include 为了能将库的头文件引进来。 而且你的程序运行时,不再需要这个第三方库。 2、静态链接库:引用头文件和相关函数,设提供的静态库名为 libabc.lib 编译时,Makefile中加入 编译选项 1)-I/abc/include #编译时加,为了能将库的头文件引进来; 2)-L/abc/lib -labc #链接时加的 而且你的程序运行时,不再需要这个第三方库。 3、动态链接库,设动态链接库为libabc.so 调用动态链接库文件,需要dlopen等函数 编译时,Makefile中加入 编译选项 1)-I/abc/include #编译时加,为了能将库的头文件引进来; 2)-L/abc/lib -labc #链接时加的 注意:你的程序运行时,需要这个第三方库的libabc.so文件。