Хорошо, я понимаю, что это может показаться дубликат, но я пробовал большинство вариантов и попыток через "найденные сообщения", и я все равно ничего не придумываю. Здесь проблема: я работаю с библиотекой C с открытым исходным кодом под названием libxls, которая используется для чтения файлов.xls (точно названный проект.. :)). Код, который я использую, прямо со своего веб-сайта, по сути, только начальный пример игрушек, чтобы я мог получить доступ к библиотекам: ссылку на их сайт с источником
#include <stdio.h>
#include "libxls/xls.h"
int main(){
xlsWorkBook* pWB;
pWB = xls_open("Book1.xls", "iso-8859-15//TRANSLIT");
return 0;
}
Это. Теперь синтаксис этого в порядке. Я знаю, что благодаря команде nm команда xls_open действительно доступна как функция в.a-библиотеке, так что это не проблема. в моем каталоге у меня есть следующие файлы (помилуй избыточное именование, я просто пытался заставить его работать очень быстро):
Book1.xls
libxlsreader.a
libxlsReader.c
libxlsreader.so
Хотя я НЕ ДУМАЮ, мне нужен файл.so, так как я пробовал динамически связываться с тем, что живет, подумал, что это не плохой план попробовать. Хорошо, поэтому, на линии включения, я продолжаю получать общее:
libxlsreader.c:3:37: fatal erro: libxls/xls.h: No such file or directory
Хорошо, поэтому я, вероятно, неправильно связал в библиотеке, взгляните на мои аргументы строки компиляции:
gcc -o libxlsWrapper libxlsReader.c -L /usr/local/lib/ -lxlsreader -lpthread
huh, well.., что, конечно, LOOKS right,/usr/local/lib / - это то место, где библиотека создала себя со всеми его.so файлами и.a в моем PWD. Теперь я разработчик Java по профессии, поэтому я мог бы пропустить что-то явное, но для жизни я не могу определить, что это такое. мне это, конечно, кажется хорошо.
Я использую GCC (ubuntu/Linaro 4.7.3-lubunutul) 4.7.3 на Linux Mint 15 KDE 32-бит.
Если вы хотите воспроизвести библиотеку для собственного тестирования или решения проблем, ее можно получить из
Я не рекомендую воссоздавать его на окнах, я вчера пробовал пару часов и сдался, поэтому просто сделайте обычную. /configure → make → make install и вы получите соответствующие библиотеки для вас.
Благодарю!
-Will
edit # 1: вот некоторые из попыток соединения, которые я пробовал, все с одинаковым результатом.
gcc -o libxlsWrapper libxlsReader.c -L. -lxlsreader -I.
gcc -o libxlsWrapper libxlsReader.c -L. -lxlsreader -lpthread
gcc -o libxlsWrapper libxlsReader.c -L. -lxlsreader.so
Я также попробовал кучу с g++ вместо gcc (бросая дротики, я знаю), тот же результат.
Пожалуйста, find your_folder -type f -iname xls.h
а затем используйте gcc -I/the_path
чтобы включить путь для xls.h
Поскольку проблема заключается в том, что gcc
не смог найти файл заголовка xls.h
find / -type f -iname xls.h
Если вы не смогли его найти, вы сделали что-то не так, чтобы установить это.