Затмение включает в себя пользовательские файлы (с)

Не уверен, как сформулировать вопрос.

Я создал несколько файлов для своего проекта c, которые я хотел бы использовать для нескольких проектов.

Project root: ~/workspace/myproject
Files :
  ~/workspace/myproject/customlib/myfile.h
  ~/workspace/myproject/customlib/myfile.c

Я смог переместить их из своего рабочего пространства затмения (Code Composer Studio) и заменить их символическими ссылками на их новое местоположение.

Custom lib dir: ~/myfiles/customlib

Это работает нормально, но я бы предпочел не использовать символические ссылки, так как возникает необходимость добавить эти символические ссылки в любой проект, где я хочу свои файлы пользовательских библиотек. Также при копировании / вставке проекта в Eclipse он, похоже, не понимает символическую ссылку и создает копию файла, а не символическую ссылку.

Я установил включаемый путь к ~/myfiles/, но при компиляции я получаю кучу неразрешенных ошибок символов.

Мои пользовательские файлы также зависят от файлов из других путей. (если это может быть намек на то, почему что-то ломается)

Есть ли другой способ ссылки на эти файлы?

1 ответ

Решение

Я понял, как я могу сделать то, что я ищу, но не могу опубликовать ответ в течение 8 часов, поэтому я отвечу здесь.

Мне удалось добавить файлы.c как "Связанные ресурсы" в мой проект.

В итоге у меня был путь включения к ~/myfiles и связанный ресурс ~/myfiles/customlib/myfile.c.

Связанные ресурсы можно найти в Свойствах проекта -> Ресурс -> Связанные ресурсы -> Связанные ресурсы (вкладка)

К сожалению, моя среда, Code Composer Studio 6 в Ubuntu, не позволила мне фактически добавить связанный ресурс через IDE.

В качестве обходного пути я добавил связанный ресурс непосредственно в файл.project.

~ / Рабочее пространство / MyProject/.project

Под разделом с надписью "природы" я добавил

<linkedResources>
    <link>
        <name>myfile.c</name>
        <type>1</type>
        <locationURI>$%7BPARENT-2-PROJECT_LOC%7D/myfiles/customlib/myfile.c</locationURI>
    </link>
</linkedResources>

"$%7BPARENT-2-PROJECT_LOC%7D" ссылается на ~/workspace/myproject/../../ (он же ~/). 2 говорит, сколько../

В случае, если вы не получили правильное расположение locationII в первый раз, вы сможете отредактировать путь к файлу из Свойства проекта -> Ресурс -> Связанные ресурсы -> Связанные ресурсы (вкладка)

Вы можете использовать любые определенные переменные сборки для locationURI. Вот еще один способ написать URI местоположения. PROJECT_LOC/../../ MyFiles / customlib / myfile.c

Поскольку это файл проекта Eclipse, он будет перезаписан любым файлом Eclipse, который будет правильным форматом для locationURI.

Вы можете поместить связанный ресурс в папку в вашем проекте, изменив тег. projectsubfolder / myfile.c. Это создаст папку проектов в папке вашего проекта. ~/ Рабочее пространство / MyProject/projectsubfolder

К сожалению, это не оптимальное решение, так как мне нужно будет добавлять записи связанных ресурсов для каждого исходного файла, который я создаю в своей пользовательской библиотеке. CCS копирует связанные ресурсы при выполнении копирования / вставки проекта, требуя, чтобы вы снова добавили связанные ресурсы в ваш скопированный проект.

В конце концов, это похоже на решение, но на самом деле оно не имеет большого преимущества по сравнению с символьными файлами. Единственное, что, когда я копирую / вставляю проект, я знаю, что проект не использует правильные файлы, когда он не компилируется. (символическая ссылка создаст рабочий проект с копиями файлов вместо оригиналов)

Я предполагаю, что мне нужно будет научиться создавать файлы.lib, чтобы сделать это включение более легким.

Другие вопросы по тегам