C++ linker presentation
This commit is contained in:
26
cpplinker/06_c_interop/build.sh
Normal file
26
cpplinker/06_c_interop/build.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "=== Compile C++ wrapper ==="
|
||||
g++ -std=c++17 -c wrapper.cpp -o wrapper.o
|
||||
|
||||
echo ""
|
||||
echo "=== Compile C main ==="
|
||||
gcc -std=c11 -c main.c -o main.o
|
||||
|
||||
echo ""
|
||||
echo "=== Symbols in wrapper.o (note: unmangled due to extern C) ==="
|
||||
nm -g wrapper.o | grep vec_
|
||||
|
||||
echo ""
|
||||
echo "=== Symbols in main.o (C code references) ==="
|
||||
nm -u main.o | grep vec_
|
||||
|
||||
echo ""
|
||||
echo "=== Link (use g++ to pull in C++ runtime) ==="
|
||||
g++ wrapper.o main.o -o app
|
||||
echo "Created app"
|
||||
|
||||
echo ""
|
||||
echo "=== Run ==="
|
||||
./app
|
||||
Reference in New Issue
Block a user