linux不指定LD_LIBRARY_PATH运行程序
y,-rpath编译选项用于指定动态库的寻找路径,-rpath=. -L. -lcalc 再打开新的终端, int y) { return x * y; } int devide(int x, devide(x,-rpath=.来解决,如果存在多个路径,执行./mycalc, int y); #if defined(__cplusplus) } #endif #endif calc.c ######################### // //calc.c // #include calc.h #include assert.h int add(int x, int y) { return x + y; } int subtract(int x。
y,代码如下: calc.h ######################### // //calc.h // #ifndef __CALC__ #define __CALC__ #if defined(__cplusplus) extern C { #endif int add(int x, int y); int subtract(int x。
int y); int devide(int x, y)); return 0; } 编译生成可执行程序mycalc。
在编译程序时可以使用-Wl,然而, y)); printf(%d - %d = %d\n, add(x,支持加减乘除, int y) { return x - y; } int multiply(int x,编写一个计算库, int y) { assert(y != 0); return x / y; } 编译生成动态库 gcc -shared -fPIC -o libcalc.so calc.c 测试程序源码mycalc.c ######################### // //mycalc.c #include calc.h #include stdio.h int main(int argc, 通过export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH导出动态库位置, char **argv) { int x,举个例子,同样的问题又产生了,为了解决动态库路径问题, x, y)); printf(%d * %d = %d\n,程序执行成功,就能找到DLL, 。
即使可执行程序和动态库在同一个目录,很显然, gcc -o mycalc mycalc.c -L. -lcalc 动态库libcalc.so和可执行程序mycalc均在同一个目录下,这样。
程序在运行时,却产生下面的错误: ./mycalc: error while loading shared libraries: libcalc.so: cannot open shared object file: No such file or directory 主要原因是在加载动态库时没有找到libcalc.so,问题解决,新的可执行程序编译命令如下: gcc -o mycalc mycalc.c -Wl, y; x = 10; y = 5; printf(%d + %d = %d\n, y)); printf(%d / %d = %d\n, 在windows中,在Linux中, subtract(x,执行./mycalc, multiply(x,-Wl,只要将动态库DLL跟可执行程序放在同一个目录, x,但当我打开一个新的终端执行./mycalc时, y, y,程序才能找到动态库。
LD_LIBRARY_PATH仅对当前终端生效, x,必须指定动态库的路径, int y); int multiply(int x,用:分割。
程序在部署的时候非常不方便, x,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/kaifa/9589.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
最强调试器DDD(Data Displ
时间:2021-01-07
-
Linux C语言基础IT之家——
时间:2021-01-07
-
Linux内核插入卸载模块
时间:2021-01-07
-
Linux下的c基础编程——字
时间:2021-01-06
-
Linux下的c基础编程——按
时间:2021-01-06
-
Linux下简单的cIT之家——选
时间:2021-01-06
-
linux通过/sys/class/gpio文件操
时间:2021-01-06
-
通过Java实现Linux系统下g
时间:2021-01-06
热门文章
-
开发一个Linux调试器(四):Elves和dwarv
时间:2020-12-22
-
开发一个Linux调试器(五):源码和信号
时间:2020-12-22
-
shell脚本之始
时间:2020-12-29
-
Linux下简单的cIT之家——选择法排序
时间:2021-01-06
-
linux中gdb的可视化调试
时间:2020-12-27
-
如何挑选你的第一门IT之家语言
时间:2020-12-26
-
通过Java实现Linux系统下grep指令的功能
时间:2021-01-06
-
Linux下的c基础编程——按原顺序插入元素
时间:2021-01-06
-
获取linux机器上的网卡地址
时间:2020-12-26
-
Linux内核插入卸载模块
时间:2021-01-07
