У меня есть две версии gcc/g ++: gcc-4.5 (установленный из диспетчера пакетов, двоичные файлы находятся в/usr/bin, файлы заголовков находятся под/usr/include) и gcc-4.4.3 (скомпилирован сам, помещен в /opt/gcc-4.4.3).Gcc ищет файлы заголовков под неправильным каталогом
Когда я сделал gcc/g ++ 4.4.3 версией по умолчанию (используя «альтернативы обновлений», чтобы make/usr/bin/gcc и/usr/bin/g ++ указывали на соответствующий в каталоге »/ opt /gcc-4.4.3/bin ") и собрали файлы, всегда сообщается следующие ошибки:
/usr/include/c++/4.5/bits/basic_string.h:1659: неопределенная ссылка на` станд :: basic_string, станд :: распределитель :: _ S_construct_aux_2 (без знака долго, голец, станд :: распределитель Const &)»
Кажется, что компилятор пытается найти файлы заголовков для C++ в /usr/include/c++/4.5, что вызывает ошибку ссылки. Когда я изменил версию gcc по умолчанию gcc-4.5, ошибки исчезли.
Так как я могу заставить компилятор искать файлы заголовков под правильным каталогом «/opt/gcc-4.4.3/include»? Я попытался экспортировать CPLUS_INCLUDE_PATH, но, похоже, не работает.
PS: НКУ -v
Using build-in specs
Target: x86_64-suse-linux
Configured with: ./configure --prefix=/opt/gcc-4.4.3
Thread model: posix
gcc version 4.4.3 (GCC)
Вы пытались добавить '-I/full/path/to/the/header' при попытке скомпилировать с помощью' 4.4.3'? –
@meh Я пытаюсь изменить путь поиска по умолчанию g ++ из/usr/include в /opt/gcc-4.4.5/include, поэтому -I/full/path/to/the/header не может решить мою проблема. –
Да, я так и думал, но я не был уверен. Не могу помочь, извините. –