#ubuntu #c #gcc #apr
#ubuntu #c #ссагпз #апрель
Вопрос:
Я пытаюсь создать библиотеку APR из исходного кода и использовать библиотеку в своем коде на C. Я использую ОС Ubuntu. Я выполнил шаги, упомянутые на веб-сайте APR, для создания библиотеки.
./configure
sudo make
sudo make install
На make install
выходе я получил путь к установленной библиотеке, как показано ниже.
Libraries have been installed in:
/usr/local/apr/lib
Указанный путь содержит следующие файлы.
adhithiyan@ubuntu:/usr/local/apr/lib$ ls -lrt
total 3768
-rwxr-xr-x 1 root root 1343392 Jan 8 14:48 libapr-1.so.0.7.0
lrwxrwxrwx 1 root root 17 Jan 8 14:48 libapr-1.so.0 -> libapr-1.so.0.7.0
lrwxrwxrwx 1 root root 17 Jan 8 14:48 libapr-1.so -> libapr-1.so.0.7.0
-rwxr-xr-x 1 root root 964 Jan 8 14:48 libapr-1.la
-rw-r--r-- 1 root root 2492102 Jan 8 14:48 libapr-1.a
-rw-r--r-- 1 root root 10883 Jan 8 14:48 apr.exp
drwxr-xr-x 2 root root 4096 Jan 8 14:48 pkgconfig
Затем я создал простую программу на C, как показано ниже. Я просто пытаюсь включить заголовок из библиотеки.
#include <stdio.h>
#include "apr_strings.h"
int main()
{
printf("Hello Worldn");
}
Когда я пытаюсь скомпилировать. Я получаю следующую ошибку.
adhithiyan@ubuntu:~/learning_c$ gcc -L/usr/local/apr/lib stringcompare.c -o test
stringcompare.c:2:10: fatal error: apr_strings.h: No such file or directory
2 | #include "apr_strings.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
Я также попытался установить LD_LIBRARY_PATH, но я получил ту же ошибку. Я не уверен, пропустил ли я что-то в сборке или в связывании библиотеки. Любая помощь приветствуется.
Комментарии:
1. Знаете ли вы, где
apr_strings.h
он находится?2. она присутствует на этом пути —
/usr/local/apr/include/apr-1
3. Затем попробуйте использовать
#include <apr-1/apr_strings.h>
в коде и-I /usr/local/apr/include/
сgcc
помощью .4. Привет @muru Большое спасибо за вашу помощь.. Это решило проблему с заголовком. но когда я попытался использовать функцию из библиотеки, я получил
undefined reference
ошибку. Я смог решить ее, указав имя библиотеки. Это последняя команда, которую я использовал —gcc -I /usr/local/apr/include/ stringcompare.c -o test -lapr-1
.