- 论坛徽章:
- 1
|
本帖最后由 shihyu 于 2016-02-23 21:55 编辑
- // foo.c
- #include <stdio.h>
- int foo(int a, int b)
- {
- int s = a + b;
- printf("%d\n", s);
- return s;
- }
复制代码- // main.c
- extern int foo(int a, int b);
- int main(int argc, char* argv[])
- {
- int s = foo(10, 20);
- return s;
- }
复制代码 // Makefile- all: so main
- so:
- gcc -g foo.c -shared -fPIC -o libfoo.so
- main:
- gcc -g main.c -L./ -lfoo -o test
- clean:
- rm -f test *.so
复制代码 就是先编译产生 test执行档跟 libfoo.so , 再把建立两各资料夹src , lib
把程式码 copy main.c & foo.c in src , libfoo.so in lib
使用gdb ./test
预期使用 directory 指定程式码路径 //OK
使用 solib-absolute-prefix & solib-search-path 指定lib 路径 // fail
必须用set env LD_LIBRARY_PATH 才可以指定lib
下面是成功步骤
gdb ./test
directory ./src
set env LD_LIBRARY_PATH ./lib/
问题:
1.为什么 solib-absolute-prefix & solib-search-path 指定lib 不行?
2.
下面四个指令有什么差异?
set solib-absolute-prefix
set solib-search-path
set env LD_LIBRARY_PATH
set debug-file-directory
谢谢 |
|