summaryrefslogtreecommitdiff
path: root/schulung_tools/linking/shared_library.txt
diff options
context:
space:
mode:
authorJohn Ogness <john.ogness@linutronix.de>2019-01-28 19:42:15 +0106
committerJohn Ogness <john.ogness@linutronix.de>2019-01-28 19:42:15 +0106
commit16c579d5fbb7ac62bf2f6f105d56d46e7409f74e (patch)
tree69cbd7fb122fe7d668385964c0f02dce59d61a02 /schulung_tools/linking/shared_library.txt
parent9a7ca2ce530c59abcdccb8a730c53c6098b3da3a (diff)
linking: move text docs out of Makefile example
The text docs are general references showing how to build, link, and verify dynamic libraries and executables. They are not specific to any build system. Signed-off-by: John Ogness <john.ogness@linutronix.de>
Diffstat (limited to 'schulung_tools/linking/shared_library.txt')
-rw-r--r--schulung_tools/linking/shared_library.txt20
1 files changed, 20 insertions, 0 deletions
diff --git a/schulung_tools/linking/shared_library.txt b/schulung_tools/linking/shared_library.txt
new file mode 100644
index 0000000..1dd0f9f
--- /dev/null
+++ b/schulung_tools/linking/shared_library.txt
@@ -0,0 +1,20 @@
+# build shared library
+gcc -fPIC -shared -Wl,-soname,libhello.so.1 -olibhello.so.1.0.3 libhello.c
+
+# install shared library
+sudo mkdir -p /opt/myfirma/lib
+sudo cp libhello.so.1.0.3 /opt/myfirma/lib
+
+# add custom path to dynamic loader search path
+echo "/opt/myfirma/lib" | sudo tee /etc/ld.so.conf.d/myfirma.conf
+
+# refresh dynamic loader cache
+sudo ldconfig
+
+# verify custom library is in cache
+/sbin/ldconfig -p | grep libhello.so.1
+
+# compile program using custom library
+ln -s /opt/myfirma/lib/libhello.so.1.0.3 libhello.so
+gcc -L. -ohello hello.c -lhello
+rm libhello.so