Hej. Jeg plejede at kompilere min kode herunder et tredjeparts-bibliotek, "libfoo.so". Nu sælger skibe en statisk knyttet bibliotek, "libfoo.a", i stedet. Med dette bibliotek, løber jeg ind i følgende fejl:
Code:
CC -mt -xarch=v9 -DCOMPILE_SOL_SPARC -ftrap=%none -xlibmil -xchip=ultra2 -xbuiltin -xO4 \
-D_REENTRANT -DNDEBUG -instances=static -I. -I/home/test/release64/include -I/home/test/release64/include \
-I/home/test/src/foo/common -I/home/test/src/foo/foo -I/infrastructure/core/release64/include \
-I/infrastructure/core/third-party/boost_1_36_0 -xildoff -norunpath -o /home/test/release64/bin/xyz \
/home/test/release64/obj/xyz/app.o \
\
/home/test/release64/obj/xyz/compiledate.o -L/home/test/release64/lib \
-L/home/test/src/foo/lib/SOL_SPARC -L/infrastructure/core/release64/lib -lfoo -ldl \
-lsocket -ldemangle -lm -lnsl -lz -lsched -R /usr/lib/lwp/64 \
Undefined first referenced
symbol in file
std::basic_string<char,std::char_traits<char>,
std::allocator<char> >&std::basic_string<char,std::char_traits<char>,
std::allocator<char> >::operator+=(const char*)
/home/test/src/foo/lib/SOL_SPARC/libfoo.a(app.o)
[...]
(symbol belongs to implicit dependency /usr/lib/sparcv9/libCstd.so.1)
ld: fatal: Symbol referencing errors. No output written to /home/test/release64/bin/foo
*** Error code 1
Jeg har prøvet "-Bstatic-lfoo-Bdynamic" med nogen succes. Jeg ser flere Google-resultater om denne fejl, men ingen, der hjælper mig specifikt. Er jeg kompilere med den forkerte valg? Er det noget, at sælgeren skal ændres? Håber nogen kan pege mig i den rigtige retning, tak!
EDIT: Jeg bruger Sun Studio 12 Update 1. Jeg har allerede forsøgt "-L/usr/lib/sparcv9-lCstd" som godt.