Vaclav_ Ответов: 2

Как мне "связать" проекты


IDE, которую я использую для разработки кода C++, "заворачивает" приложение в "проект".
У меня есть два таких "проекта", и оба они используют общий класс, позвольте мне назвать его "общим". .
Проекты находятся "в стадии строительства", и "общий" класс периодически меняется в каждом проекте - независимо.
Я хотел бы иметь еще один проект, где я хотел бы сохранить / обновить "общий" класс и вместо того, чтобы каждый проект имел отдельные копии такого класса, сделать ссылку на третий проект "общий" класс.

Теоретически мне просто нужно добавить "#include COMMON" , и я сделал это, и он компилируется нормально.

НО
линкер жалуется: "отсутствует ссылка..."

Я не знаю, как выбрать компоновщик

Я знаком со связыванием библиотек, но "COMMON" - это класс C++, а не библиотека.

Итак - как мне "связать" "общий" класс в другом проекте?

ПС
Подробный вывод компоновщика можно опубликовать, если это поможет.

Что я уже пробовал:

Существует несколько различных способов добавить "include COMMON", и они работают.

2 Ответов

Рейтинг:
2

Richard MacCutchan

В дополнение к предложению Джерри, вы можете просто включить исходный модуль из одного проекта в другой. Вы не сказали нам, какую IDE вы используете, но я предполагаю, что здесь вы используете Visual Studio.

В окне Проводника проектов щелкните правой кнопкой мыши соответствующую исходную папку и выберите пункт "Добавить существующую". В открывшемся диалоговом окне перейдите к соответствующему файлу и выберите его. Теперь файл будет включен в ваш исходный набор, хотя и останется в исходном расположении.


Рейтинг:
19

Gerry Schmitz

Вы создаете "общую" библиотеку / dll и добавляете к ней "ссылку" в других своих проектах.

Скорее всего, у вас есть более 1 класса, который является кандидатом на "общую" / общую библиотеку.


Vaclav_

После дальнейших исследований я бы добавил - Мне не хватает ссылки на объектный файл - возможно, невозможно связать объектные файлы между проектами.

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

Что бы "породить" еще один вопрос - как "нормальный проект" связывается с объектными файлами?