LINUX.ORG.RU

Статическая компиляция


0

0

gcc -g -mpentium -I/usr/local/pgsql/include -L/usr/local/pgsql/lib -L/usr/lib -I/usr/include -lpq -lstdc++ block_prog.c -o block_prog [root@localhost block_prog]# make gcc -g -mpentium -I/usr/local/pgsql/include -L/usr/local/pgsql/lib -L/usr/lib -I/usr/include -lpq -lstdc++ block_prog.c -o block_prog -static /tmp/.private/root/ccc6WjtC.o(.text+0x2d): In function `main':

Как нужно модифицировать этот Makefile,чтобы библиотеки включались в выполняемый файл. При исползовании -static в конце выдает

/tmp/.private/root/ccc6WjtC.o(.text+0x3e):/prog/prog.c:16: undefined reference to `PQstatus'

anonymous

Попробуй вместо -lpq поставить libpq.a (возможно, libpq.a надо поставить в самом конце командной строки).

И не работай под рутом ;)

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

Компиляция не бывает статической. Статической бывает линковка. Да, я знаю, что я зануда.

devinull ★★
()

В списке аргументов сначала должны идти объектные файлы, а затем библиотеки.

Motl
()

У тебя отсутствует файл libpq.a. Без него никак статически не слинкуешься!

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