2014-01-06 3 views
0

Я начал экспериментировать с C/C++ на днях, потому что мне это нужно для чтения MAT-файлов уровня 4 без необходимости покупать редактор или компилятор Matlab , Поэтому я нашел только те библиотеки, которые мне нужны, но я вообще не знаком с C или C++, поэтому я начинаю с этих двух языков. В любом случае мне нужно включить библиотеку «matio». Я много пробовал, но мне не повезло.Eclipse C/C++: внешняя библиотека matio «неопределенная ссылка на« Mat_Open »

Я щелкнул правой кнопкой мыши по C/C++ project > properties > C/C++ General > Paths & Symbols > GNU C и добавил путь к библиотеке matio.

Я также поехал в C/C++ Build > Settings > Tool settings > GCC C Compiler > Includes и добавил туда путь.

Поскольку я не очень хорошо разбираюсь в make-файлах, я не указал свой собственный make-файл, вместо этого я выбрал исполняемый проект.

Когда я пытаюсь построить свой проект, он жалуется на функцию «Mat_Open» в библиотеке matio. Когда я навис над ним, он говорит «неопределенная ссылка на« Mat_Open »« заголовок «matio.h», похоже, работает нормально, но по какой-то причине он не может ссылаться на «Mat_Open».

Как это решить?

EDIT:

Здесь весь вывод сборки консоли.

10:42:52 **** Incremental Build of configuration Debug for project Project **** 
Info: Internal Builder is used for build 
gcc -IC:/matio-1.5.2/src -O0 -g3 -Wall -c -fmessage-length=0 -o CComponent.o "..\\CComponent.c" 
gcc -Xlinker -lm -o Project.exe CComponent.o -lC:/matio-1.5.2/src 
c:/mingw(x64)/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lC:/matio-1.5.2/src 
collect2.exe: error: ld returned 1 exit status 

10:42:53 Build Finished (took 330ms) 
+1

Вы не * связываете * с библиотекой 'matio', это недостающий шаг: http://i.stack.imgur.com/0Iqzs.png – Amro

+0

Спасибо, но когда я пытаюсь его построить, он говорит об этом не удается найти каталог. Имеет ли значение обратная косая черта или передняя косая черта какое-либо значение? Если я посмотрю в консоли, то «синтаксис/команда сборки», похоже, имеет «2» обратную косую черту, чтобы разделить каталоги. – Linus

+0

@Amro после многих исследований выяснил, что мне нужно добавить путь поиска к библиотеке, а также имя библиотеки (matio), и она добавит lib в суффикс, и он автоматически добавит префикс lib и ". a "(или" .so "). Я также не правильно установил библиотеку matio, но с помощью вас и roybatty я получил его работу. Благодаря! – Linus

ответ

1

Это не обязательно ответ, но может быть полезен для сравнения.

Прежде всего, где вы его установили? Если вы используете Linux или Mac OSX, вы захотите установить их в системные каталоги (не уверены в Windows). Я использую OSX так в моем Makefile (кстати I use Qt):

LIBS += -L/usr/local/lib/ -lmatio 
INCLUDEPATH += /usr/local/include 

Тогда, конечно, в * .h файлах моего источника я использую:

#include "matio.h" 

Но я предполагаю, что у вас есть уже пробовал это?

+0

Ну, я использую Windows, я уже включил haeding файл «matio.h» да. Но не было никакого мастера установки для matio, вместо этого я был архивирован, и я поместил его в свои документы. Должен ли я вместо этого поставить его на один уровень выше моего каталога дисков? (C: /) – Linus

+0

@linus, я не использовал это под Windows, но похоже, что вы не можете его правильно установить. Если вы [проверьте эту ссылку] (http://sourceforge.net/p/matio/discussion/search/?q=windows), вы найдете некоторое обсуждение проблем установки. –

+0

Хорошо, спасибо, я установил командную строку msys и выполнил инструкции по установке библиотеки. Он должен быть установлен правильно. – Linus

Смежные вопросы