Allegro 4.2.3 Создание статической/выпускной сборки с использованием Visual C++ 2010 Express для запуска на других компьютерах с Windows

Я успешно установил allegro 4.2.3 в соответствии с инструкциями по следующей ссылке, и все отлично работает:

http://blog.hamidnazari.com/2010/07/21/installing-allegro-on-visual-cpp-express-2010/

Единственное, от чего я отклонился в отношении приведенного выше руководства, это то, что я выбрал приложение Windows вместо консольного приложения, как показано в третьем графическом примере (обратите внимание на выбор между консольным приложением Win32 или проектом Win32, как показано в 2-й графический пример, я пока не заметил заметной разницы).

Выбор приложения Windows, показанного в 3-м графическом примере, для меня, по крайней мере, просто привел к НЕТ необходимости включать строку: #define USE_CONSOLE во все мои программы Allegro.

Пожалуйста, в отношении учебника, указанного выше, и заголовка этого сообщения, может ли кто-нибудь помочь мне, ответив на следующий вопрос:

Начало вопроса: как мне заставить мои игры Allegro работать на других компьютерах, использующих Windows, чтобы на других компьютерах не требовалось установить Visual C++ 2010 Express и/или предварительно собранную двоичную версию Allegro 4.2.3 (ссылка на него приведена в приведенном выше руководстве) также должна быть установлена ​​на других компьютерах и связана/настроена в Visual C++ 2010 Express, также описанном в приведенном выше руководстве. Конец вопроса

Между прочим: отличная ссылка для тех, кто заинтересован в том, чтобы стандартные программы C++ (т. е. не использующие Allegro или другие различные библиотеки) работали с полностью независимым файлом .exe (скомпилированным/построенным с использованием Visual C++ 2010 Express), который действительно может работать на другие компьютеры, использующие Windows, ниже:

http://www.youtube.com/watch?v=AvrjQtFBJvk

Спасибо, что нашли время, чтобы прочитать этот пост, и я очень надеюсь, что кто-то сможет помочь.

Гэри.

Мой ответ на первый ответ Мэтью ниже:

Привет Мэтью,

Я искал в Google, чтобы попытаться выяснить, как различные элементы, которые вы упомянули, соответствуют и сравниваются со связанным учебником в моем посте, в котором шаг за шагом объясняется, как настроить Visual C++ 2010 Express с помощью двоичного файла Allegro 4.2.3. .

Первое, что я хочу проверить у вас, это все ли бинарные файлы в разделе 4.4.2 и 4.2.3 на сайте Allegro.cc, по сути, оба предварительно собранные бинарные файлы, и, следовательно, в конечном итоге настройка версии 4.4.2 для работа с VC++ 2010 в принципе должна быть аналогична настройке версии 4.2.3 (а может и нет?) Я скачал версию 4.4.2 и вижу, что там действительно те же самые 3 папки, bin, include и lib.

Вот еще раз ссылка на онлайн-руководство, в котором объясняется, как шаг за шагом успешно настроить Allegro 4.2.3 с Visual C++ 2010 Express:

http://blog.hamidnazari.com/2010/07/21/installing-allegro-on-visual-cpp-express-2010/

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

1) allegro-4.4.2-monolith-static-mt.lib --- Нужно ли добавить это в дополнительные зависимости в разделе ввода в раскрывающемся списке компоновщика как для отладки, так и для выпуска. (Также как это соотносится с учебным пособием для этой части конфигурации, т.е. есть ли какие-либо другие дополнительные зависимости)

2) ссылаться на все различные библиотеки Win32 при статической ссылке --- я не знаю, как ссылаться на эти библиотеки. Я немного озадачен этим.

3) #define ALLEGRO_STATICLINK --- Означает ли это, что «ALLEGRO_STATICLINK» нужно добавить в раздел «Препроцессор» в раскрывающемся списке C/C++, как я читал, кто-то другой сделал это, пытаясь заставить все это работать для 4.4.2

В заключение: Я полагаю, что еще раз задаю свой первоначальный вопрос, учитывая все, что было сказано до сих пор, я бы задал его в следующих двух частях:

Часть 1) Как в онлайн-руководстве необходимо добавить или изменить статические сборки для успешной работы на других компьютерах, использующих Windows для версии 4.2.3, и означает ли это тогда просто выбор варианта сборки выпуска и конечно, сохраняя вместе любые файлы, связанные с .exe при распространении.

Часть 2) Если вы используете версию 4.4.2, опять же, как онлайн-руководство должно быть добавлено/изменено для успешной работы статических и динамических сборок.

Ответы типа учебника на часть 1 или 2 были бы потрясающими для меня и многих других новичков.

Большое спасибо за то, что прочитали этот пост.


person user1831698    schedule 16.01.2013    source источник


Ответы (2)


Allegro 4.2 уж больно старый. Вы должны использовать 4.4 как минимум. Он совместим с версией 4.2 (тот же API) и время от времени получает обновления. Allegro 5 — это место, где сейчас ведется вся активная разработка, но у него совершенно новый API. Я все же настоятельно рекомендую вам взглянуть на него.

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

Свяжите с файлом allegro-4.4.2-monolith-static-mt.lib и убедитесь, что вы компилируете с использованием переключателя /MT (а не /MD). Аспект -static означает, что DLL Allegro не нужна. флаг -mt означает, что среда выполнения C не нужна.

Вам также нужно будет связать все различные библиотеки Win32 при статической ссылке. Также не забудьте #define ALLEGRO_STATICLINK в настройках вашего проекта.

person Matthew    schedule 17.01.2013
comment
Здравствуйте, Мэтью. Спасибо, что помогли с этим. Я очень новичок в C++, Allegro и программировании в целом. Я попробую то, что вы предлагаете, после работы сегодня, примерно через 7 часов. У меня будет несколько очень простых вопросов об основах всего процесса установки/конфигурации. Я обновлю этот пост в течение следующих 24 часов, чтобы вы точно не знали, где я нахожусь. Еще раз, спасибо. - person user1831698; 17.01.2013
comment
Пожалуйста, найдите мой ответ на 1-й ответ Мэтью, добавленный в конец моего исходного вопроса в верхней части страницы. Большое спасибо. - person user1831698; 17.01.2013
comment
StackOverflow на самом деле не предназначен для длительной обратной связи. Для такого рода дискуссий вы должны присоединиться к форумам @ allegro.cc. Эта ссылка может помочь: allegro.cc/forums/thread/609180. Это все та же конфигурация, только с разными именами библиотек. И да, вы можете использовать секцию препроцессора вместо #define ALLEGRO_STATICLINK. - person Matthew; 18.01.2013

Прошло немного времени, но, если я правильно помню, есть простой способ сделать это, хотя, вероятно, это не лучший способ. Это хорошо для того, чтобы просто отправить небольшую демонстрацию другу. Даже если вы просто строите в режиме отладки, вы можете отправить игру другим людям. Скопируйте/вставьте файл allegro-4.2.2-monolith-md.lib (его имя примерно такое, но, вероятно, не совсем так) в папку Debug проекта (рядом с .exe). Возможно, вам также понадобится файл MSVCR1000.lib (или что-то в этом роде. Не помню точное название), но вам придется найти его где-нибудь в Интернете.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я никогда не использовал такую ​​полностью старую версию Allegro, поэтому это решение может быть неприменимо. Но я использовал Allegro после версии 5 и до 5.6, поэтому я знаю, что он работает для более новых версий. Вы должны просто использовать более новую версию, на самом деле.

person Shaquil Hansford    schedule 29.06.2013