Подтвердить что ты не робот

Eclipse CDT: ссылка на стороннюю сторону включает в себя через относительный путь

Я новичок в Eclipse-CDT, создав новый проект в первый раз. Я пытаюсь ссылаться на Boost без hardcoding на абсолютный путь.

Я добавил boost в мою папку рабочего пространства, например./Главная/пользователь/рабочее пространство /boost _1_39_0

Затем я надеялся добавить каталог include, указывающий на эту папку относительно рабочей области, но Eclipse этого не сделает, кажется, что он просто хочет указать на /home/user/workspace/ [MyProjectNameHere]

Какие-нибудь советы? Кажется, нет смысла копировать Boost в мою папку проекта, потому что тогда она появляется в Eclipse, и Eclipse хочет ее построить (конечно, я мог бы исключить ее).

  • Alex
4b9b3361

Ответ 1

При добавлении пути к файлу include в проекте CDT (Project Properties/C/С++ General/Paths and Symbols) есть 3 кнопки для поиска местоположения:

  • Переменные...
  • Workspace...
  • Файловая система...

Если вы нажмете кнопку Workspace..., путь будет относиться к рабочему пространству/проекту. Если вы выберете кнопку "Переменные...", вы сможете включить такие переменные, как ${WorkspaceDirPath}. Переменные также могут ссылаться на переменные окружения, что может быть удобно, если вы хотите, чтобы одна установка повышения была указана из проектов, которые могут находиться где угодно на вашем компьютере.

Если вы включаете переменные в путь, убедитесь, что опция "Является ли путь к рабочему пространству" отмечена - в противном случае переменная, похоже, будет оценена, когда вы нажмете "ОК", а не оставите переменную, которая будет оцениваться во время сборки.

Ответ 2

Я получил эту работу, сделав примерно то, что предложил Майкл Берр выше:

В разделе Project Properties/C/С++ General/Paths and Symbols добавлены следующие пути:

${ProjDirPath}/../boost_1_39_0

  • Alex

Ответ 3

IIRC, вы должны иметь возможность щелкнуть правой кнопкой мыши проект и перейти к общим настройкам C/С++. Оттуда вы можете добавить конкретные каталоги include для ссылки на проект. Вот несколько ссылок, которые могут помочь...

Статья IBM

Eclipse Development

Ответ 4

Я использую Eclipse Luna и нашел, что принятый ответ более не точен. После немного царапин на голове, кажется, что за последние несколько лет произошло несколько изменений (по крайней мере, это произошло в моей системе):

  • Eclipse больше не расширяет переменные, когда вы нажимаете "OK", если у вас есть not, отмеченный галочкой "Is workspace path".
  • Eclipse не может найти пути, относящиеся к рабочей области, если они не ссылаются на проекты в рабочей области. Любые пути, которые не могут быть найдены Eclipse, будут добавлены в не в командную строку сборки с помощью -I или другого релевантного коммутатора

Поэтому для этого мне пришлось вводить ${ProjDirPath}/../whatever в качестве не относящегося к рабочему пространству пути, и переменная не будет расширяться до момента компиляции.