Compilieren von C++ Sourcen auf Solaris

S

Sylvihasi

Grünschnabel
Hallo,

ich habe auf Solaris c++ Sourcen compiliert zu einer Shared Library und mit -L ein Verzeichnis angeben, in dem eine normlib.a Datei ist aber kein -l hinzugebe nimmt er diese dann als Library.

Denn ich habe das Problem, dass er die normlib.a nicht finden konnte, wenn ich diese mit -l angegeben habe (mit Pfad, ohne, mit ./ ).

--> pwd: /usr/sfw/bin
./g++ /Sylvi/scr/norm.cpp -I /Sylvi/src/include -L /Sylvi/src/library
-G -o lib.so

(im src : norm.cpp | im src/include: jni.h, jni_md.h, norm.h |
im src/library: normlib.a)

Oder habe ich bei der Compilierung etwas falsch gemacht?


LG Sylvi
 
Sylvihasi schrieb:
--> pwd: /usr/sfw/bin
./g++ /Sylvi/scr/norm.cpp -I /Sylvi/src/include -L /Sylvi/src/library
-G -o lib.so

(im src : norm.cpp | im src/include: jni.h, jni_md.h, norm.h |
im src/library: normlib.a)

Ich bin mir nicht sicher, ob ich Deine Frage richtig verstanden habe: Du moechtest normlib.a beim Kompilieren von norm.cpp miteinbinden?
Dann koenntest Du folgende Varianten versuchen:
Code:
mv /Sylvi/src/library/normlib.a /Sylvi/src/library/libnorm.a
./g++ /Sylvi/scr/norm.cpp -I /Sylvi/src/include -L /Sylvi/src/library \
-lnorm -G -o lib.so
oder
Code:
./g++ /Sylvi/scr/norm.cpp -I /Sylvi/src/include \
/Sylvi/src/library/libnorm.a -G -o lib.so
(die '\' kannst Du weglassen, wenn Du alles in eine Zeile schreibst, ich wollte nur die scrollbars vermeiden)

Die Flag '-l wort' weisst den Compiler an, in den angegebenen Pfaden nach einer Datei 'libwort.a' oder 'libwort.so' zu suchen, deswegen solltest Du die normlib.a umbenennen, wenn Du die erste Variante nehmen moechtest.

P.S.:
man g++ schrieb:
-G Create a shared object. It is recommended that -symbolic or
-shared be used instead.
 
Ich wuerde ja einfach das Freizeichen zwischen -L und den Library-Pfad weglassen. Selbiges auch bei -I und dem Include-Pfad.

Code:
./g++ /Sylvi/scr/norm.cpp -I/Sylvi/src/include -L/Sylvi/src/library -G -o lib.so
 
theton schrieb:
Ich wuerde ja einfach das Freizeichen zwischen -L und den Library-Pfad weglassen. Selbiges auch bei -I und dem Include-Pfad.

Code:
./g++ /Sylvi/scr/norm.cpp -I/Sylvi/src/include -L/Sylvi/src/library -G -o lib.so
Bei all den gcc-Versionen, die ich bisher kennengelernt habe, war das Leerzeichen nicht signifikant.
 

Ähnliche Themen

Statistikprogramm R

Fehler beim Einbinden von libxml2

c++ header in linux

apach2 mod install error ?!

Composite oder Svideo Ausgang mit Geforce

Zurück
Oben