#include <lib.h> дает символ не найден, почему? - PullRequest
0 голосов
/ 20 марта 2009

У меня есть этот код:

#include <iostream>
#include <mp4.h>

int main (int argc, char * const argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";

    MP4Read("filename", MP4_DETAILS_ALL );

    return 0;
}

И я добавил -I / opt / local / include и -L / opt / local / lib к пути (где находится библиотека mp4 после установки его через macports), но все, что я получаю, это:

Неопределенные символы: "_MP4Read", ссылка от: _main в main.o ld: символ (ы) не найдены

Несмотря на то, что XCode находит его и автоматически завершает работу ...

Ответы [ 3 ]

8 голосов
/ 20 марта 2009

Скорее всего, вам нужно связать библиотеку, то есть добавить -lmp4 или аналогично вашим командам связывания.

3 голосов
/ 20 марта 2009

Вы указали только пути. Вам нужно сделать ссылку в библиотеке mp4. Примерно так:

g++ -I /.../ -L /.../ -lmp4 -o out main.cpp
1 голос
/ 20 марта 2009

Флаги -L сообщают компилятору, где искать, а флаг -l указывает, что искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...