LINUX.ORG.RU

g++: линковка


0

0

имеется приложение на c++/gtkmm. надо собрать gtk/gtkmm статически, чтобы не было лишних зависимостей. собираю так:

g++ main.cpp `pkg-config --libs --cflags gtkmm-2.4` -static -o proga

однако, линкер вылетает с ошибкой, говорит что-то типа -lXrandr not found.

как сделать так, чтобы gtkmm собралось статически, а иксовые библиотеки подключались динамически?

★★★

Ты бы хоть ошибку привёл.

А так указывай библиотеки .a с полными путями прямо в командной строке, не пользуйся pkg-config. А -static убери.

welkam ★★
()
Ответ на: комментарий от welkam

т.е. что-то типа g++ main.cpp -l/usr/lib/libgtkmm.a -l/usr/X11R6/lib/libXrandr.so ?

точно ошибку не смогу привести, т. к. сижу не дома. но суть, что линкер не может найти иксовые *.a библиотеки

friday ★★★
() автор топика
Ответ на: комментарий от friday

опять же, хотелось бы, чтобы не было жесткой привязки к путям

friday ★★★
() автор топика

> как сделать так, чтобы gtkmm собралось статически, а иксовые библиотеки подключались динамически?

Явно указать согласно `man ld`, что подключать статику по полным путям (типо gcc ... $CFLAGS $LDFLAGS -o proga /usr/lib/libfoo.a), а все остальное - динамически (типо -L/usr/lib -lbar).

Gharik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.