Как принудительно связать тестовую программу со статической библиотекой, созданной libtool - PullRequest
4 голосов
/ 22 декабря 2011

У меня есть библиотека, управляемая autotools. У меня есть следующая строка в Makefile.am, а также другие необходимые конфигурации

lib_LTLIBRARIES = libstuff.la

Мой проект также создает программу для запуска некоторых наборов тестов. Эта программа настроена следующим образом:

noinst_PROGRAMS = runtests
runtests_SOURCES = test/stuff.c stuff.h
runtests_LDADD = libstuff.la

Однако программа всегда связана с динамической версией libstuff.la, что усложняет некоторые ситуации (например, отладка с помощью gdb). Как заставить программу связываться с libstuff.a вместо libstuff.so или эквивалентной динамической библиотекой?

1 Ответ

8 голосов
/ 22 декабря 2011

Правильный способ сделать это - добавить флаг -static в переменную LDFLAGS. Для всех целей: AM_LDFLAGS = -static

Или специально для тестовой программы: runtests_LDFLAGS = -static

...