Проблема с использованием библиотеки Apache APR в программе C

#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 .