Moderators: Sascha Willems, walaber
gcc -shared -o libNewton.so libNewton.a
nm -u libNewton.so
w _Jv_RegisterClasses
w __cxa_finalize@@GLIBC_2.2.5
w __gmon_start__
cp libNewton.a ../newtonSDK/sdk/libNewton.a
cp libNewton.so ../newtonSDK/sdk/libNewton.so
cp newton/Newton.h ../newtonSDK/sdk/Newton.h
julio@julio-desktop:~/NewtonLinux64/development$
$ g++ test.cpp -L. -lNewton
/tmp/cc0pb6rq.o: In function `main':
test.cpp:(.text+0x21): undefined reference to `NewtonCreate'
collect2: ld returned 1 exit status
libNewton.a : $(DG_OBJ_FILES)
ar r $@ $?
# strip -g -S -d -v libNewton.a -olibNewton.a
# gcc -shared xxxxx $?
# gcc -shared -o libNewton.so libNewton.a
# gcc -shared -o libNewton.so $?
gcc -shared -Wl,-soname,libNewton.so.1 \
-o libNewton.a -lc
nm libNewton.so
cp libNewton.a ../newtonSDK/sdk/libNewton.a
cp libNewton.so ../newtonSDK/sdk/libNewton.so
cp newton/Newton.h ../newtonSDK/sdk/Newton.h
gcc -shared -Wl,-soname,libNewton.so.1 \
-o libNewton.a -lc
nm libNewton.so
nm: 'libNewton.so': No such file
make: *** [libNewton.a] Error 1
julio@julio-desktop:~/development$
gcc -fPIC -g -c -Wall a.c
gcc -fPIC -g -c -Wall b.c
gcc -shared -Wl,-soname,libmystuff.so.1 \
-o libmystuff.so.1.0.1 a.o b.o -lc
extern "C"
{
void DoSomething();
}
##include "shared.h"
#include <cstdio>
void DoSomething()
{
std::printf("Hello world form so file!\n");
}
#include "shared.h"
int main()
{
DoSomething();
}
$ g++ -c -fpic shared.cpp -o shared.o
$ g++ -shared -Wl,-soname,libShared.so shared.o -o libShared.so
$ g++ main.cpp libShared.so -o main.exe
$ nm libShared.so
...
000004cc T DoSomething // note that big list of symbols includes DoSomething symbol!
...
$ sudo cp libShared.so /usr/lib
$ ./main.exe
Hello world form so file!
$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:." ; ./main.exe
# this use newton as shared or static library
#NEWTON_LIB = -lNewton
NEWTON_LIB = $(SDK_NEWTON)/libNewton.a
# this use newton as shared or static library
NEWTON_LIB = -lNewton
#NEWTON_LIB = $(SDK_NEWTON)/libNewton.a
Users browsing this forum: No registered users and 4 guests