Использование icpc с gnu libstdc++ в нестандартном расположении

Я пытаюсь использовать icpc с функциями С++ 11, однако мне нужна стандартная библиотека С++ 11, которую Intel не предоставляет.

Я работаю как пользователь на RHEL 6, поэтому системный libstdС++ устарел. Установлена ​​более новая версия, но она находится в нестандартном месте.

Как сделать ссылку на стандартную библиотеку gcc в нестандартном месте? Какие флаги я использую?


person Andrew Spott    schedule 13.11.2012    source источник
comment
Хм. Здесь он прекрасно использует системную библиотеку (ICC 13.0.0 20120731). Мне не нужно указывать ничего особенного. Вы действительно включили режим C++-11? (-std=c++11 флаг компилятора.)   -  person Nikos C.    schedule 14.11.2012
comment
Проблема в том, что системная стандартная библиотека устарела (возможно, gcc 4.0). Мне нужно связать версию стандартной библиотеки С++ в другой версии GCC, которая находится в другом месте.   -  person Andrew Spott    schedule 14.11.2012
comment
Ах хорошо. Извините, хотя, я понятия не имею, как это делается. Я установил ICC через менеджер пакетов и никогда не имел дело с этим.   -  person Nikos C.    schedule 14.11.2012
comment
У меня похожая проблема: icpc 10 падает, потому что использует заголовки библиотеки gcc4.7.0 std (которые реализуют конструкторы делегирования, которые icpc не понимает).   -  person Walter    schedule 14.11.2012


Ответы (1)


Я не знаю ICC, но пробовали ли вы обычные варианты -I и -L для заголовков и библиотек соответственно?

Я бы попробовал запустить более новый g++ с флагом -v, который сообщит вам обо всех каталогах, в которых он ищет свои заголовки и библиотеки, а затем скажет ICC искать по тем же путям.

Я почти уверен, что RHEL6 не поставляется с GCC 4.0, поскольку RHEL5 поставляется с GCC 4.1! Я думаю, что это 4.4 на RHEL6, если память не изменяет, которая поддерживает некоторые функции С++ 11, но вам может потребоваться определить __GXX_EXPERIMENTAL_CXX0X__, если ICC не определяет это при использовании -std=c++11.

person Jonathan Wakely    schedule 13.11.2012
comment
Итак, -I и -L предназначены для включения и каталогов библиотек для обычных библиотек... но разве stdc++ не отличается? - person Andrew Spott; 14.11.2012
comment
нет, его заголовки разбросаны по нескольким директориям, но это все - person Jonathan Wakely; 14.11.2012