Как скомпилировать Allegro 4.9.14 с использованием CMake 2.8 - PullRequest
0 голосов
/ 11 февраля 2010

Я никогда не компилировал программы, использующие CMake. Я скачал последнюю версию SVN от Allegro и попытался скомпилировать ее несколько раз, но не повезло. Я посмотрел по всему интернету и не нашел ничего полезного. Я решил скомпилировать его для Visual Studio 9 2008. Я действительно не знаю, где мне нужно связать исходный код и сборку. Файлы Allegro сбивают с толку. Я не знаю, может ли это быть полезным, но я также получил файлы lib. Если кто-нибудь знает, как я должен связать файлы, чтобы правильно скомпилировать, я был бы очень рад.

Вот содержимое CMakeCash.Text:

# This is the CMakeCache file.
# For build in directory: c:/lib/Allegro4.9
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUI's for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.

########################
# EXTERNAL cache entries
########################


########################
# INTERNAL cache entries
########################

//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=c:/lib/Allegro4.9
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=2
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=8
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=0

Также, вот список событий, ошибка обязательно должна быть найдена внутри:

Check for working C compiler: cl
Check for working C compiler: cl -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler: cl
Check for working CXX compiler: cl -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Guessed MSVC directory: cl
Allowing MSVC to use SSE instructions
Check if the system is big endian
Searching 16 bit integer
Looking for sys/types.h
Looking for sys/types.h - found
Looking for stdint.h
Looking for stdint.h - not found
Looking for stddef.h
Looking for stddef.h - found
Check size of unsigned short
Check size of unsigned short - done
Using unsigned short
Check if the system is big endian - little endian
Looking for include files ALLEGRO_HAVE_DIRENT_H
Looking for include files ALLEGRO_HAVE_DIRENT_H - not found.
Looking for include files ALLEGRO_HAVE_INTTYPES_H
Looking for include files ALLEGRO_HAVE_INTTYPES_H - not found.
Looking for include files ALLEGRO_HAVE_LINUX_JOYSTICK_H
Looking for include files ALLEGRO_HAVE_LINUX_JOYSTICK_H - not found.
Looking for include files ALLEGRO_HAVE_STDBOOL_H
Looking for include files ALLEGRO_HAVE_STDBOOL_H - not found.
Looking for include files ALLEGRO_HAVE_STDINT_H
Looking for include files ALLEGRO_HAVE_STDINT_H - not found.
Looking for include files ALLEGRO_HAVE_SYS_IO_H
Looking for include files ALLEGRO_HAVE_SYS_IO_H - not found.
Looking for include files ALLEGRO_HAVE_SYS_STAT_H
Looking for include files ALLEGRO_HAVE_SYS_STAT_H - found
Looking for include files ALLEGRO_HAVE_SYS_TIME_H
Looking for include files ALLEGRO_HAVE_SYS_TIME_H - not found.
Looking for include files ALLEGRO_HAVE_TIME_H
Looking for include files ALLEGRO_HAVE_TIME_H - found
Looking for include files ALLEGRO_HAVE_SYS_UTSNAME_H
Looking for include files ALLEGRO_HAVE_SYS_UTSNAME_H - not found.
Looking for include files ALLEGRO_HAVE_SYS_TYPES_H
Looking for include files ALLEGRO_HAVE_SYS_TYPES_H - found
Looking for include files ALLEGRO_HAVE_SOUNDCARD_H
Looking for include files ALLEGRO_HAVE_SOUNDCARD_H - not found.
Looking for include files ALLEGRO_HAVE_SYS_SOUNDCARD_H
Looking for include files ALLEGRO_HAVE_SYS_SOUNDCARD_H - not found.
Looking for include files ALLEGRO_HAVE_MACHINE_SOUNDCARD_H
Looking for include files ALLEGRO_HAVE_MACHINE_SOUNDCARD_H - not found.
Looking for include files ALLEGRO_HAVE_LINUX_SOUNDCARD_H
Looking for include files ALLEGRO_HAVE_LINUX_SOUNDCARD_H - not found.
Looking for include files ALLEGRO_HAVE_OSATOMIC_H
Looking for include files ALLEGRO_HAVE_OSATOMIC_H - not found.
Looking for getexecname
Looking for getexecname - not found
Looking for mkstemp
Looking for mkstemp - not found
Looking for mmap
Looking for mmap - not found
Looking for mprotect
Looking for mprotect - not found
Looking for sched_yield
Looking for sched_yield - not found
Looking for stricmp
Looking for stricmp - found
Looking for strlwr
Looking for strlwr - found
Looking for strupr
Looking for strupr - found
Looking for sysconf
Looking for sysconf - not found
Looking for fseeko
Looking for fseeko - not found
Looking for ftello
Looking for ftello - not found
Check size of _Bool
Check size of _Bool - failed
Performing Test ALLEGRO_HAVE_PROCFS_ARGCV
Performing Test ALLEGRO_HAVE_PROCFS_ARGCV - Failed
Performing Test ALLEGRO_HAVE_SV_PROCFS_H
Performing Test ALLEGRO_HAVE_SV_PROCFS_H - Failed
Performing Test ALLEGRO_HAVE_VA_COPY
Performing Test ALLEGRO_HAVE_VA_COPY - Failed
Check if constructors are supported - no
Could NOT find DINPUT  (missing:  DINPUT_INCLUDE_DIR DINPUT_LIBRARY)
CMake Error at CMakeLists.txt:565 (message):
  Windows port requires DirectInput (not found).


Configuring incomplete, errors occurred!

Ответы [ 2 ]

1 голос
/ 11 февраля 2010

Сначала запустите cmake из командной строки MSVC, а не из обычной командной строки. Затем установите переменные среды INCLUDE и LIB, чтобы они указывали на вашу установку DirectX. Например:

set INCLUDE = C: \ Program Files \ Microsoft DirectX SDK (август 2009 г.) \ Включить установить LIB = C: \ Program Files \ Microsoft DirectX SDK (август 2009 г.) \ lib \ x86

Обратите внимание на отсутствие кавычек ("). Не используйте кавычки. Затем удалите CMakeCache.txt и снова запустите cmake, и он должен найти директив.

1 голос
/ 11 февраля 2010

Если cmake не работает, он должен сообщить вам, что пошло не так, например: если вы пропустили необходимые зависимости.

Пожалуйста, опубликуйте фактические ошибки, которые вы видите в cmake и / или компиляторе, если сам cmake не вышел из строя.

редактирование:

Ну вот, ваши ошибки:

Не удалось найти DINPUT (отсутствует: DINPUT_INCLUDE_DIR DINPUT_LIBRARY) CMake Ошибка в CMakeLists.txt: 565 (сообщение): Для порта Windows требуется DirectInput (не найден).

Это распространенная проблема, которая исправляется в новых версиях. 4.9.14 древний. Пожалуйста, обновитесь до последней версии или даже прямо с SVN.

...