diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-04 13:09:34 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-04 13:09:34 +0200 |
commit | bbd66503d81b6ee8509d0c0604128d7a3acca81a (patch) | |
tree | 97d6b482579cb8a6c3ff35d60aa6fc05b3be3440 /mwe/dynlink/exec | |
parent | 7b910e400e75c8e99ce14238a5a1f840ba4d840e (diff) |
add dynamic linking test (tested on linux)
Diffstat (limited to 'mwe/dynlink/exec')
-rw-r--r-- | mwe/dynlink/exec/CMakeLists.txt | 23 | ||||
-rw-r--r-- | mwe/dynlink/exec/main.c | 8 | ||||
-rw-r--r-- | mwe/dynlink/exec/makefile | 1 |
3 files changed, 32 insertions, 0 deletions
diff --git a/mwe/dynlink/exec/CMakeLists.txt b/mwe/dynlink/exec/CMakeLists.txt new file mode 100644 index 0000000..5335f0f --- /dev/null +++ b/mwe/dynlink/exec/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.28) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 20) + +project(main C CXX) + +# Since we have the source code for the test library, we might as well let +# CMake use it so it automatically picks up the interface headers and compiles +# the library for us. The same can be achieved manually, but is more code. +add_subdirectory(../lib test) + +add_executable(main main.c) + +# Make sure ld.so (linux) looks in the same folder as the final executable for +# the .so dependency +set_target_properties(main PROPERTIES BUILD_RPATH "$ORIGIN") + +# This links test (dynamically, as defined in ../lib/CMakeLists.txt) and makes +# the <lib.h> interface header available (also as defined in +# ../lib/CMakeLists.txt) +target_link_libraries(main PRIVATE test) + diff --git a/mwe/dynlink/exec/main.c b/mwe/dynlink/exec/main.c new file mode 100644 index 0000000..e3f458a --- /dev/null +++ b/mwe/dynlink/exec/main.c @@ -0,0 +1,8 @@ +#include <lib.h> + +int main() { + library_function(); + + return 0; +} + diff --git a/mwe/dynlink/exec/makefile b/mwe/dynlink/exec/makefile new file mode 100644 index 0000000..eec7c61 --- /dev/null +++ b/mwe/dynlink/exec/makefile @@ -0,0 +1 @@ +include ../../../lazy.mk |