b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

printf()函数 【转】Linux下gcc编译生成动态链接库*.so文件并调用它(5)

电脑杂谈  发布时间:2018-12-25 21:04:53  来源:网络整理

设置ld_library_path=dir dir 为 libssl.so 的目录,假设libssl.so 在 /home/lib/ 目录下 执行命令: export ld_library_path="/home/lib" 。

19.配置环境变量 vi /etc/profile i插入 添加以下三句export到文件最后 注意java_home的目录为你解压jdk的目录版本为你下载的jdk版本export java_home=/java/jdk1.7.0_79 export classpath=.:%java_home%/lib/dt.jar:%java_home%/lib/tools.jar export path=$path:$java_home/bin:wq 保存退出。

3. 再找默认库目录 /lib /usr/lib /usr/local/lib,这是当初compilegcc时写在程序内的。

三、动态链接时、执行时搜索路径顺序:

1. 编译目标代码时指定的动态库搜索路径;

2. 环境变量LD_LIBRARY_PATH指定动态库搜索路径,它指定程序动态链接库文件搜索路径;

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:data/home/billchen/lib

3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;

4. 默认的动态库搜索路径/lib;

5. 默认的动态库搜索路径/usr/lib。

四、静态库和动态链接库同时存在的问题:

当一个库同时存在静态库和动态库时,比如libmysqlclient.a和libmysqlclient.so同时存在时:

在Linux下,动态库和静态库同事存在时,gcc/g++的链接程序,默认链接的动态库。

可以使用下面的方法,给连接器传递参数,看是否链接动态库还是静态库。

-WI,-Bstatic -llibname //指定让gcc/g++链接静态库

使用:

gcc/g++ test.c -o test -WI,-Bstatic -llibname

-WI,-Bdynamic -llibname //指定让gcc/g++链接动态库

使用:

gcc -wall -std=gnu99-dtest_add -dtest_sub=1-i./test-add -i./test-sub -o test-add/test-add.o -c test-add/test-add.c。

gcc -wall -std=gnu99-dtest_add -dtest_sub=1-i./test-add -i./test-sub -o test-sub/test-sub.o -c test-sub/test-sub.c。

gcc -o test test.o test-add/test-add.o test-sub/test-sub.o。

1.使用gcc -s test.c 或者gcc -s test.c>out.txt。

如果要完全静态加在,使用-static参数,即将所有的库以静态的方式链入可执行程序,这样生成的可执行程序,不再依赖任何库,同事出现的问题是,这样编译出来的程序非常大,占用空间。

五、有关环境变量:

LIBRARY_PATH环境变量:指定程序静态链接库文件搜索路径

LD_LIBRARY_PATH环境变量:指定程序动态链接库文件搜索路径

六、动态库升级问题:

在动态链接库升级时,

不能使用cp newlib.so oldlib.so,这样有可能会使程序core掉;


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-90979-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...