makefile文件中如何使用 export LD_LIBRARY_PATH=/myfile/makefile:$LD_LIBRARY_PATH

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了makefile文件中如何使用 export LD_LIBRARY_PATH=/myfile/makefile:$LD_LIBRARY_PATH相关的知识,希望对你有一定的参考价值。

我有一个makefile文件名为shared.mk
文件内容如下:
running:main.c static_lib.c static_lib.h libshared.so
2 export LD_LIBRARY_PATH=/myfile/makefile:$(LD_LIBRARY_PATH)\
3 gcc -o running main.c -I /myfile/makefile -L /myfile/makefile -lshar ed
4 libshared.so:static_lib.c static_lib.h
5 gcc -shared -fPIC -o libshared.so static_lib.c
6 clean:
7 @rm -f libshared.so running

当用make命令是出现错误:
root@ubuntu:/myfile/makefile# make -f shared.mk

export LD_LIBRARY_PATH=/myfile/makefile:/myfile/makefile:\
gcc -o running main.c -I /myfile/makefile -L /myfile/makefile -lshared
/bin/sh: 1: export: -o: bad variable name
make: *** [main] Error 2

参考技术A LD_LIBRARY_PATH是程序运行时系统用来查询库文件的环境变量,你现在在编译产生目标文件...不需要处理这个变量...

只需要在gcc编译产生最终目标时,用 -L 指定特殊的库文件位置,-l指定库的名字即可链接成功...追问

恩,那个我知道,只要在makefile文件中去掉
export LD_LIBRARY_PATH=/myfile/makefile:$(LD_LIBRARY_PATH)\
这一行是可以编译成功的,但是在运行他产生的可执行文件之前必须加上

export LD_LIBRARY_PATH=/myfile/makefile:$LD_LIBRARY_PATH这条语句
字数不能太多,还有一些,发私信给你了,呵呵

参考技术B 去掉 “export LD_LIBRARY_PATH=/myfile/makefile:$(LD_LIBRARY_PATH)\”最后的"\"即可 参考技术C gcc后面加 -Wl,-rpath,path
path是库所在位置

以上是关于makefile文件中如何使用 export LD_LIBRARY_PATH=/myfile/makefile:$LD_LIBRARY_PATH的主要内容,如果未能解决你的问题,请参考以下文章

在 Makefile 中添加 INCLUDE、LIB 和 LD_LIBRARY_PATH

GCC学习 如何编写makefile

MakeFile中export的使用

Makefile中export分析

Makefile export

如何在makefile中使用OpenMP?