2014-11-25 2 views
1

Я новичок в C++ и у меня есть следующая проблема:C++ аккуратным компоновщик ошибка

файлы: - main.cpp - utils.h - utils.cpp

Когда я делаю:

г ++ -c -std = C++ 11 utils.cpp (компилирует) г ++ -c -std = C++ 11 main.cpp (компилирует)

при попытке ссылки:

г ++ -o main.o utils.o

/usr/lib/gcc/i686-redhat-linux/4.8.3/../../../crt1.o: In function _start': (.text+0x18): undefined reference to main' utils.o: In function clean_html(std::string const&)': utils.cpp:(.text+0xfa): undefined reference to tidyCreate' utils.cpp:(.text+0x118): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x13b): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x15e): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x181): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x1a4): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x1c7): undefined reference to tidyOptSetValue' utils.cpp:(.text+0x1ea): undefined reference to tidyOptSetValue' utils.cpp:(.text+0x209): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x228): undefined reference to tidyOptSetBool' utils.cpp:(.text+0x247): undefined reference to tidyOptSetInt' utils.cpp:(.text+0x281): undefined reference to tidyParseString' utils.cpp:(.text+0x295): undefined reference to tidyCleanAndRepair' utils.cpp:(.text+0x2b0): undefined reference to tidySaveBuffer' utils.cpp:(.text+0x322): undefined reference to tidyBufFree' utils.cpp:(.text+0x32d): undefined reference to `tidyRelease' collect2: error: ld returned 1 exit status

В utils.cpp У меня есть функция clean_html. Когда я удаляю эту функцию, код связан с успехом.

Я использую gcc версию 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC).

Tidy устанавливается с помощью FEDORA РЕПО с использованием: пакет уже установлен libtidy-разви-0.99.0-28.20091203.fc19.i686 и последняя версия пакет libtidy-0.99.0-28.20091203.fc19.i686 уже установлена ​​и последняя версия

Edit:

забыл упомянуть: - я включаю tidy.h с использованием #include

tidy.h находится в /usr/include/tidy.h

+0

Возможный дубликат [Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved- внешний символ ошибка и-как-делать-я-фикс). Вероятно, вы пропустили указание '-ltidy' на этапе компоновки. –

+2

Вы можете показать команду связи. Вероятно, вам не хватает опции -l', чтобы связать аккуратную библиотеку. – geert3

+0

@ geert3 Я добавил ссылку. Что такое имя библиотеки для добавления в -l? И как мне это понять? – gosom

ответ

3

Вам нужно добавить -ltidy в вашу команду связи.