Вопрос по c++ – Ссылки на сторонние библиотеки с использованием * относительных * путей в Eclipse-CDT

7

Какова наилучшая практика для ссылки на сторонние компоненты C ++ (например, библиотеки), используяrelative пути в Eclipse-CDT?

I'm trying to reference Boost and Google protobuf. I've put them each in a folder in my workspace, e.g. /home/user/workspace/boost_1_39_9 I've added a reference to that folder under build settings in the project properties, BUT eclipse won't let me specify that path as relative to the workspace folder, I have to choose it using filesystem and specify an absolute path

Спасибо,

Alex
У меня точно такая же проблема с MySQL Connector для C ++ - я скомпилировал его, поместил в дополнительный проект и добавил в библиотеку «Путь поиска», но затмение настаивает, что не может его найти! Я скопировал его в / usr / lib, и он отлично работал. wsd

Ваш Ответ

4   ответа
1

е), но вы не можете использовать переменную рабочей области? Примерно так: $ {workspace_loc} / boost_1_39_9

Редактировать: ОК, я провел поиск и нашел некоторую информацию об этих переменных,Во. Я думаю, что вы хотите: $ {project_loc: / boost_1_39_0}?

Я пытался, но это не сработало. 1. Eclipse не позволит вам создать что-то подобное, он заставит вас выбрать $ {workspace_loc} / [YourProjectName] / boost_1_39_0 2. Если я введу то, что вы предложили вручную, это @ Появит на работу, но Eclipse не может найти мои включения. Alex Black
Я не планировал увеличивать местоположение проекта, потому что тогда Eclipse захочет его построить. Alex Black
1

«Общие» -> «Рабочая область» -> «Связанные ресурсы».

В основном вы определяете переменную, указывающую на папку вашего рабочего пространства.

Затем добавьте в свой проект стороннюю папку, используя Добавить папку-> Дополнительно-> Ссылка на папку в файловой системе, и используйте кнопку Переменные ..., чтобы использовать ранее созданную переменную для указания на стороннюю папку (используя кнопка Расширить).

Затем вам просто нужно добавить папку к путям включения и пути к библиотекам в настройках проекта.

Легко, как торт ...: S

0

чтобы include включался в / usr / include и / usr / lib / или / lib. Затем просто добавьте эти пути в ваши настройки сборки. У меня была похожая проблема, но потом мы решили ее с помощью пользовательских make-файлов. Это сработало для нас, потому что у нас уже была пользовательская среда сборки, и нам просто нужно внести некоторые изменения в существующий make-файл и скопировать его в этот проект.

6

такие как $ {workspace_loc} и $ {project_loc}, работают только для вещей, которые на самом деле рабочая область Eclipse. Когда вы говорите, что помещаете их в рабочую область файловой системы, импортировали ли вы файлы в Eclipse (используя новый проект или создавая связанную папку в существующем проекте

Если файлы существуют в файловой системе, но не в самом Eclipse, то Eclipse сможет получить к ним доступ только по абсолютным путям.

BTW, CDT имеет свои собственные переменные: $ {WorkspaceDirPath} $ {ProjDirPath} $ {ProjName}, которые расширяются до определенного расположения файловой системы.

Похожие вопросы