Затем, чтобы добавить в проект исходный файл hellobeatles.cpp из примера 1.3, используйте Add Existing Item (Добавить существующий элемент) из меню Project. Теперь страницы свойств проекта должны содержать узел с именем «C/C++». Перейдите к Configuration Properties→C/C++→Code Generation (Генерация кода) и укажите в качестве библиотеки времени выполнения Multi-threaded Debug DLL (многопоточная отладочная динамическая библиотека).

Вместо использования опции Add Existing Item, добавляющей в проект исходные файлы из примера 1.1, можно использовать Add New Item (Добавить новый элемент), добавляющую в проект пустые исходные файлы. После этого во вновь созданные файлы требуется ввести или вставить через буфер обмена содержимое из примера 1.1. Аналогичные замечания действительны и для других IDE.

Затем перейдите к Configuration Properties→C/C++→General и в поле редактирования с именем Additional Include Directories (Дополнительные директории заголовочных файлов) введите директорию, которая содержит директории johnpaul и georgeringo, — директорию, являющуюся «дедушкой» по отношению к файлам john.hpp, ringo.hpp и другим. Это позволит корректно разрешить директивы include в заголовочном файле hellobeatles.hpp.

Далее, используя Add→Existing Project… (Существующий проект…) из меню File добавьте в решение hellobeatles файлы проектов libjohnpaul.vcproj и libgeorgeringo.vcproj. Чтобы отобразить диалог Project Dependencies… (Зависимости проектов…), в меню Project выберите Project Dependencies. В раскрывающемся списке выберите hellobeatles и щелкните на флажках рядом с libjohnpaul и libgeorgeringo.

Если вы знаете, что будете добавлять несколько проектов в одно решение, нет необходимости создавать для каждого из них отдельное решение. Просто создайте пустое решение, выбрав в меню File пункт New→Blank Solution…, а затем добавив в него новые проекты, выбрав в меню File пункт New→Project….

Наконец соберите проект, выбрав в меню Build пункт Build Solution. Проверьте, что в директории binaries были созданы файлы с именами libjohnpaul.lib, libgeorgeringo.dll, libgeorgeringo.lib и hellobeatles.exe. Теперь, чтобы запустить это приложение, в меню Debug выберите Start Without Debugging (Запустить без отладки).

Обсуждение

В предыдущем примере было достаточно просто указать, что hellobeatles.exe зависит от библиотек libjohnpaul.lib и libgeorgeringo.dll, так как обе эти библиотеки собирались в проектах Visual C++ из исходного кода. При сборке приложения, которое зависит от библиотек, распространяемых в виде готовых бинарных и заголовочных файлов, указать Visual C++, как их найти, можно следующим способом. Во-первых, перейдите к Configuration Properties→C/C++→General и в поле редактирования Additional Include Directories введите директории, которые содержат заголовочные файлы библиотек. Затем перейдите в раздел Configuration Properties→Linker→Input и в поле с именем Additional dependencies (Дополнительные зависимости) введите имена этих библиотек. Наконец перейдите к Configuration Properties→Linker→General и в поле редактирования Additional Include Directories введите директории, которые содержат бинарные файлы этих библиотек. Теперь давайте посмотрим на то, как из исходного кода из примера 1.3 собрать исполняемый файл с помощью CodeWarrior, C++Builder и Dev-C+ +.

CodeWarrior

В меню File выберите New… и в диалоге New выберите вкладку Project. В качестве имени проекта введите hellobeatles.mcp, выберите место для сохранения настроечных файлов проекта и дважды щелкните мышью на Mac OS C++ Stationery. В диалоге New Project раскройте узел Mac OS X Mach-O and Standard Console, а затем дважды щелкните на C++ Console Mach-O. Теперь у вас должен быть проект с двумя целями — Mach-O C++ Console Debug и Mach-O C++ Console Final, и активной должна быть первая из них.

Так как при добавлении в проект зависимостей вам придется ссылаться на эти цели по их именам, им следует дать понятные имена. Сейчас переименуйте только отладочную цель. Выберите вкладку Targets окна проекта и дважды щелкните мышью на имени отладочной цели, чтобы отобразить окно Target Settings (Параметры цепи). Затем перейдите к Target→Target Settings и в первом поле Target Name (Имя цели) введите hellobeatles Debug.

Далее выберите вкладку Targets окна проекта и дважды щелкните мышью на имени отладочной цели, чтобы отобразить окно Target Settings, Перейдите к Target→PPC Mac OS X Target, в качестве Project Туре (Тип проекта) укажите Executable (Исполняемый файл), а в поле с именем File Name (Имя файла) введите hellobeatles. Чтобы в качестве места для создания выходного файла hellobeatles указать директорию binaries, перейдите к Target→Target Settings и нажмите на Choose….

Выберите вкладку Files окна проекта и удалите существующие исходные файлы и файлы библиотек MSL, перетащив их в Trash (корзину). Чтобы добавить в проект исходный файл hellobeatles.cpp из примера 13, используйте Add Files… (Добавить файлы…) из меню Project. Затем используйте Add Files…, чтобы добавить файлы MSL_All_Mach- O_D.dylib и MSL_Shared AppAndDylib_Runtime_D.lib, находящиеся в директории Metrowerks CodeWarrior/MacOS X Support/Libraries/Runtime/Runtime PPC/Runtime_MacOSX/Libs. Если бы вы вместо отладочной цели настраивали окончательную, то вместо этих библиотек должны были бы добавить библиотеки MSL_All_Mach-О.dylib и MSL_Shared_AppAndDylib_Runtime.lib. В окне Target Settings перейдите к Target→Access Paths (Пути доступа) и щелкните на панели, которая называется User Paths (Пути пользователя). Чтобы добавить директорию, которая содержит директории johnpaul и georgeringo, — директорию, являющуюся «дедушкой» по отношению к исходным файлам ringo.hpp, ringo.hpp и другим, — используйте элемент управления с именем Add…. Это позволит корректно разрешить директивы include в заголовочном файле hellobeatles.hpp.

Используя Add Files… из меню Project, добавьте в проект hellobeatles.mcp файлы проектов libjohnpaul.mcp и libgeorgeringo.mcp. Перейдите на вкладку Targets и раскройте узлы, которые называются hellobeatles Debug, libjohnpaul.mcp и libgeorgeringo.mcp. Щелкните на пиктограммах целей, расположенных рядом с дочерними узлами libjohnpaul.mcp и libgeorgeringo.mcp, которые называются libjohnpaul Debug и libgeorgeringo Debug. На обеих пиктограммах должны появиться жирные стрелки. Если требуется, увеличьте окно проекта так, чтобы увидеть небольшую пиктограмму связи у правого края окна. Дважды щелкните в этом столбце — напротив пиктограмм целей со стрелками. В этом столбце должны появиться две черные точки.

Соберите проект, выбрав в меню Project пункт Make. Компоновщик может отобразить несколько предупреждений о символах, определенных несколько раз, но ими можно пренебречь. Вы можете подавить их, перейдя к Linker→Mac OS X Linker и установив опцию Suppress Warning Messages (Подавлять предупреждающие сообщения).

Проверьте, что в директории binaries были созданы файлы с именами libjohnpaul.a, libgeorgeringo.dylib и hellobeatles. Теперь запустите hellobeatles, поместив в директорию binaries копию библиотек MSL_All_Mach-

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату