c ++ tidy linker error

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

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

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

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

когда я пытаюсь связать:

g ++ -o main.o utils.o

/usr/lib/gcc/i686-redhat-linux/4.8.3/../../../crt1.o: в функции _start':
(.text+0x18): undefined reference to
главный’
utils.o: в функции clean_html(std::string const&)':
utils.cpp:(.text+0xfa): undefined reference to
tidyCreate»
utils.cpp :(. text + 0x118): неопределенная ссылка на tidyOptSetBool'
utils.cpp:(.text+0x13b): undefined reference to
tidyOptSetBool»
utils.cpp :(. text + 0x15e): неопределенная ссылка на tidyOptSetBool'
utils.cpp:(.text+0x181): undefined reference to
tidyOptSetBool»
utils.cpp :(. text + 0x1a4): неопределенная ссылка на tidyOptSetBool'
utils.cpp:(.text+0x1c7): undefined reference to
tidyOptSetValue»
utils.cpp :(. text + 0x1ea): неопределенная ссылка на tidyOptSetValue'
utils.cpp:(.text+0x209): undefined reference to
tidyOptSetBool»
utils.cpp :(. text + 0x228): неопределенная ссылка на tidyOptSetBool'
utils.cpp:(.text+0x247): undefined reference to
tidyOptSetInt»
utils.cpp :(. text + 0x281): неопределенная ссылка на tidyParseString'
utils.cpp:(.text+0x295): undefined reference to
tidyCleanAndRepair»
utils.cpp :(. text + 0x2b0): неопределенная ссылка на tidySaveBuffer'
utils.cpp:(.text+0x322): undefined reference to
tidyBufFree»
utils.cpp :(. text + 0x32d): неопределенная ссылка на `tidyRelease ‘
collect2: error: ld вернул 1 состояние выхода

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

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

Tidy устанавливается через репозитории fedora с использованием:
Пакет libtidy-devel-0.99.0-28.20091203.fc19.i686 уже установлен и последняя версия
Пакет libtidy-0.99.0-28.20091203.fc19.i686 уже установлен и последняя версия

Редактировать:

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

tidy.h находится по адресу /usr/include/tidy.h

1

Решение

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

4

Другие решения


По вопросам рекламы [email protected]