Skip to content

Commit eaf3991

Browse files
author
wintel2014
committed
The dynamic library "libuser.so" depends on libdfclib.so
the dependency relationship can be figured out at Compilation or Runtime. ldd dynamic_library_test/lib/libuser.so linux-vdso.so.1 => (0x00007fff065eb000) libstdc++.so.6 => /opt/Apps/local/gcc-5.3.0/lib64/libstdc++.so.6 (0x00007f585e3c2000) libm.so.6 => /lib64/libm.so.6 (0x00007f585e0a9000) libgcc_s.so.1 => /opt/Apps/local/gcc-5.3.0/lib64/libgcc_s.so.1 (0x00007f585de93000) libc.so.6 => /lib64/libc.so.6 (0x00007f585dad0000) /lib64/ld-linux-x86-64.so.2 (0x000055c5a0db4000) ldd dynamic_library_test_2/lib/libuser.so linux-vdso.so.1 => (0x00007ffce1073000) libdfclib.so => not found libstdc++.so.6 => /opt/Apps/local/gcc-5.3.0/lib64/libstdc++.so.6 (0x00007fb976775000) libm.so.6 => /lib64/libm.so.6 (0x00007fb976473000) libgcc_s.so.1 => /opt/Apps/local/gcc-5.3.0/lib64/libgcc_s.so.1 (0x00007fb97625d000) libc.so.6 => /lib64/libc.so.6 (0x00007fb975e99000) /lib64/ld-linux-x86-64.so.2 (0x000055f9b67ed000)
1 parent 476290b commit eaf3991

File tree

16 files changed

+110
-0
lines changed

16 files changed

+110
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
main:main.cpp
2+
make -C src/
3+
make -C lib/
4+
g++ $^ -Llib -Iinclude -luser -ldfclib -o $@
5+
6+
clean:
7+
rm main
8+
make -C src/ clean
9+
make -C lib/ clean
10+
11+
run:
12+
export LD_LIBRARY_PATH=lib; ./main
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#pragma once
2+
class DFCFuncProvider
3+
{
4+
public:
5+
double sum(double a, double b);
6+
};
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#include <dfclib.h>
2+
double calc (DFCFuncProvider* obj, double var);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
DEP = $$(gcc -MM -I../include dfclib.cpp | gawk '{print $2" "$3}')
2+
libdfclib.so: dfclib.cpp
3+
#echo $$(gcc -MM -I../include dfclib.cpp | gawk '{print $2" "$3}')
4+
g++ $^ -I../include --shared -fPIC -o $@
5+
6+
clean:
7+
rm libdfclib.so
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include <dfclib.h>
2+
double DFCFuncProvider::sum(double a, double b)
3+
{
4+
return a+b;
5+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <iostream>
2+
#include <user.h>
3+
#include <dfclib.h>
4+
5+
int main()
6+
{
7+
DFCFuncProvider Obj;
8+
9+
double a = 2.0;
10+
11+
std::cout<<calc(&Obj, a)<<std::endl;
12+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
libuser.so:user.cpp
2+
g++ -g3 $^ -I../include --shared -fPIC -o ../lib/$@
3+
4+
clean:
5+
rm ../lib/libuser.so
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include <dfclib.h>
2+
double calc (DFCFuncProvider* obj, double var)
3+
{
4+
return obj->sum(1.1,var);
5+
}
6+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
main:main.cpp
2+
make -C src/
3+
make -C lib/
4+
g++ $^ -Llib -Iinclude -luser -o $@
5+
6+
clean:
7+
rm main
8+
make -C src/ clean
9+
make -C lib/ clean
10+
11+
run:
12+
export LD_LIBRARY_PATH=lib; ./main
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#pragma once
2+
class DFCFuncProvider
3+
{
4+
public:
5+
double sum(double a, double b);
6+
};
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#include <dfclib.h>
2+
double calc (DFCFuncProvider* obj, double var);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
DEP = $$(gcc -MM -I../include dfclib.cpp | gawk '{print $2" "$3}')
2+
libdfclib.so: dfclib.cpp
3+
#echo $$(gcc -MM -I../include dfclib.cpp | gawk '{print $2" "$3}')
4+
g++ $^ -I../include --shared -fPIC -o $@
5+
6+
clean:
7+
rm libdfclib.so
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include <dfclib.h>
2+
double DFCFuncProvider::sum(double a, double b)
3+
{
4+
return a+b;
5+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <iostream>
2+
#include <user.h>
3+
#include <dfclib.h>
4+
5+
int main()
6+
{
7+
DFCFuncProvider Obj;
8+
9+
double a = 2.0;
10+
11+
std::cout<<calc(&Obj, a)<<std::endl;
12+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
libuser.so:user.cpp
2+
g++ -g3 $^ -I../include --shared -fPIC -o ../lib/$@ -L../lib -ldfclib
3+
4+
clean:
5+
rm ../lib/libuser.so
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include <dfclib.h>
2+
double calc (DFCFuncProvider* obj, double var)
3+
{
4+
return obj->sum(1.1,var);
5+
}
6+

0 commit comments

Comments
 (0)