0

Как связать файл .exp в C?

Я могу связать .so, .o, .a, .la, lo и .slo файлы.
Но есть файл httpd.h только с .exp-файлом (Нет .so, .o, .a, .la, lo и .slo), и мне нужно использовать функцию из него.
И, я получаю неопределенную ошибку символа.Ubuntu, Как связать файл .exp в C?

undefined symbol: ap_cstr_casecmp

+0

Попробуйте добавить '-lapr-1' в свою командную строку компилятора или загрузчика. –

+0

Снова такая же ошибка, httpd.h не является ни частью apr, ни apr-util, но apache2 сама, другие функции httpd.h работают нормально. –

ответ

2

.exp файл содержит только список экспортируемых символов. Нет смысла связываться с ним, вам нужна библиотека для связи.

+0

Эта функция 'ap_cstr_casecmp' находится в httpd.h, но я получаю« undefined symbol: ap_cstr_casecmp ». Как правильно установить ссылку, чтобы избавиться от этой ошибки? –

2

.exp is used on Windows only и не подходит для Ubuntu. Для связи с Ubuntu вам нужен файл .so или .a.

Вам нужно найти файл библиотеки (lib<name>.so или lib<name>.a или аналогичный, где <name> это имя библиотеки), а затем связать с -L<path> -l<name> где <path> должен быть заменен на пути к каталогу, который содержит файл библиотеки. Если <path> - /usr/lib, то -L<path> может быть опущен.

+0

Эта функция 'ap_cstr_casecmp' находится в httpd.h, но я получаю' undefined symbol: ap_cstr_casecmp'. Как правильно установить ссылку, чтобы избавиться от этой ошибки? Есть файл в каталоге lib httpd.exp в Ubuntu, так что же их использовать? –

+0

См. Обновленный ответ. – Rufflewind

+0

Нет такого файла, другие функции из того же заголовочного файла работают нормально, но это не так. –