Привет!Подскажите пожалуйста - как можно собрать программу, при этом часть либ слинковать динамически, а часть включить статически?
То есть, хочется стандартные либы линковать динамически, а либы boost статически.
Есть сделать так, то линкуются все динамически..
$ cat Makefile
CXX=g++-4.2main: main.o
$(CXX) -o main -l boost_program_options main.o
main.o: main.cpp
$(CXX) -c -I. main.cpp
$
$ ldd main
linux-gate.so.1 => (0xffffe000)
libboost_program_options-gcc41-1_34_1.so.1.34.1 => /usr/lib/libboost_program_options-gcc41-1_34_1.so.1.34.1 (0xb7f0f000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e23000)
libm.so.6 => /lib/libm.so.6 (0xb7dfd000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7df2000)
libc.so.6 => /lib/libc.so.6 (0xb7ca5000)
/lib/ld-linux.so.2 (0xb7f6c000)
$Если указывать ключ static, то все статически, в том числе и куча стандартных либ..
>Если указывать ключ static, то все статически, в том числе и куча
>стандартных либ..Либо линковать нужные статически либы как libname.a, либо вот так:
${CXX} -Wl,-static static_libs ... -Wl,-dynamic dynamic_libs ...
не помогло, или я что-то делаю криво?$ cat Makefile
CXX=g++-4.2
main: main.o
$(CXX) -o main -Wl,-static -lboost_program_options main.o
main.o: main.cpp
$(CXX) -c -I. main.cpp
$
$ make
g++-4.2 -o main -Wl,-static -lboost_program_options main.o
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [bpp03] Error 1
$
$ locate gcc_s
/lib/libgcc_s.so.1
/usr/lib/gcc/i486-linux-gnu/3.4.6/64/libgcc_s_64.so
/usr/lib/gcc/i486-linux-gnu/3.4.6/64/libgcc_s.so
/usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s_64.so
/usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
/usr/lib/gcc/i486-linux-gnu/4.1.2/libgcc_s.so
/usr/lib/gcc/i486-linux-gnu/4.1/libgcc_s.so
/usr/lib/gcc/i486-linux-gnu/4.2/libgcc_s.so
$попытки указать эту либу и путь к ней ни к чему не привели.. гугл как ни странно тоже не дал внятного ответа на данную проблему :(