Я пытаюсь добавить новую функцию в libsoup. Я сам создал libsoup для правильной компиляции с моей новой функцией; Я также добавил прототип функции в соответствующий файл заголовка. Однако при попытке скомпилировать тестовую программу с локальным so
, компоновщик жалуется, что ссылка на мою новую функцию не определена. Проверка с помощью objdump -T
, я вижу, что функция существует в библиотеке, но не при проверке с nm -C -D
. Даже если я глобализую символ, используя objcopy
, nm
все еще не может его увидеть.Невозможно связать с новой функцией API
Я также уже пытался добавить __attribute__((visibility("default")))
, но, похоже, это не помогает.
Я использую этот компилятор вызов для моей тестовой программы:
gcc -o test -I. -I $prefix/include/glib-2.0/ -I $prefix/lib/glib-2.0/include/ -L libsoup/.libs/ test.c -lsoup-2.4
Не могли бы вы дать нам точные параметры, которые вы используете для связи и компиляции библиотеки? – askmish
Я добавил свой вызов для компилятора, спасибо. – djc
Устранила ли вы проблему? Если да, ответьте на вопрос и закройте этот вопрос. – askmish