Avatar billede nak-m Nybegynder
20. september 2003 - 21:14 Der er 18 kommentarer og
1 løsning

program med allegro

Jeg sidder og prøver at lave mit første program med allegro i devcpp/mingw32. Jeg har taget følgende kode fra manualen:

  #include <allegro.h>

  int main() {
      allegro_init();
      allegro_message("Hello World!");
      return 0;
  }
  END_OF_MAIN();

Jeg har lavet et projekt og en sourcefil med koden i. Når jeg så prøver at kompilere det får jeg denne fejl:

  unable to run program file.

Er der noget jeg har forglemt at gøre?
Avatar billede nak-m Nybegynder
20. september 2003 - 21:23 #1
Her er 'guiden' jeg har fulgt:

=======================================
=============== Using Allegro ===============
=======================================

  All the Allegro functions, variables, and data structures are defined
  in allegro.h. You should include this in your programs, and link with
  either the optimised library liballeg.a, the debugging library
  liballd.a, or the profiling library liballp.a. You should include the
  Allegro DLLs in any software you release to the public.

  When using a statically linked library, you must define the preprocessor
  symbol ALLEGRO_STATICLINK before including any of the Allegro headers and
  link your program against Allegro and the main Win32/DirectX libraries
  in that order (see the variable LIBRARIES in makefile.mgw).

  Don't forget that you need to use the END_OF_MAIN() macro right after
  your main() function.

=======================================

  A simple example of a command line to compile an allegro program
  with MingW32:

  gcc foo.c -mwindows -O2 -Wall -o foo.exe -lalleg

=======================================

  A simple example on how to create a little program with Dev-C++:

  Launch Dev-C++ and create a new project (File/New Project). Select
  "Windows Application", then click on the "Ok" button. Name your
  project and give associate it to a new file. You should now see a
  sample code in a window. Close that window since you won't be
  needing it (Allegro is much simpler to use than this). Create a
  new file (File/New Source File), then write a small Allegro
  program. You can inspire yourself by the Allegro examples if you
  wish. Here's a small program you can type to see if everything
  worked until now:

      #include <allegro.h>

      int main() {
        allegro_init();
        allegro_message("Hello World!");
        return 0;
      }
      END_OF_MAIN();

  You now need to tell Dev-C++ that you'd like to make a program that
  uses Allegro. For that, go in the Project Options screen
  (Project/Project Options menu), then enter -lalleg (or -lalld for
  the debug mode) in the box under 'Further object file or linker
  options'.

  Compile your project! Simply click on the green check mark on
  your Dev-C++ toolbar. Correct any syntax errors in your code,
  then click on "Execute" to run the program. If all worked
  you will see a message box pop up with "Hello World" inside of it.



  Happy coding!


Kan det have noget at gøre med at jeg skal skrive '-lalleg' et sted? :)
Avatar billede arne_v Ekspert
20. september 2003 - 21:36 #2
Det skal du.

Men hvis det bare er det der mangler så vil du få en fejl om
symboler der ikke kan findes.
Avatar billede soreno Praktikant
20. september 2003 - 21:59 #3
Står der ikke noget mere info ?

F.eks. hvilket program der ikke kan køres ?
Avatar billede nak-m Nybegynder
20. september 2003 - 22:07 #4
line: 2
file: C:\udvikling\2
message: unable to run program file.

compile log:
Compiler: Default compiler
Building Makefile: "C:\udvikling\Makefile.win"
Executing  make...
make.exe -f "C:\udvikling\Makefile.win" all
Execution terminated

det er hvad den siger
Avatar billede soreno Praktikant
20. september 2003 - 22:10 #5
Jeg fik ikke nærlæst dit tidligere spørgsmål, så det kan være du allerede har gjort det, men:

Der ligger en fil (hvis du har en nyere Dev-cpp) i dit bin directory som hedder "mingw32-make.exe".

Prøv at kopiere filen til make.exe og læg filen i samme directory (altså bin directoriet).
Avatar billede nak-m Nybegynder
20. september 2003 - 22:16 #6
ok nu er den fejl væk :) ... men!

nu er disse fejl ankommet:

[Linker error] undefined reference to `install_allegro'
[Linker error] undefined reference to `allegro_message'
[Linker error] undefined reference to `_WinMain'
[Build Error]  [Project1.exe] Error 1

hvad gør jeg ved det?
Avatar billede soreno Praktikant
20. september 2003 - 22:23 #7
Så skal du linke med allegro librariet.

Mener det er i "project settings" du kan tilføje libraries. Find allegros og tilføj det.
Avatar billede nak-m Nybegynder
20. september 2003 - 22:28 #8
hvad er det for et librarie?
Avatar billede arne_v Ekspert
20. september 2003 - 22:30 #9
Den fil i allegro træet som ender med .a !
Avatar billede nak-m Nybegynder
20. september 2003 - 22:34 #10
allegro\lib\mingw32\libaldat.a
allegro\lib\mingw32\liballeg.a

er det dem?
Avatar billede soreno Praktikant
20. september 2003 - 22:34 #11
Link med denne:
liballeg.a
Avatar billede nak-m Nybegynder
20. september 2003 - 22:36 #12
skal jeg gå ind i project->project options->directories og så smide linket under library directories? eller er jeg forkert på den?
Avatar billede soreno Praktikant
20. september 2003 - 22:38 #13
Kig her:
http://www.wxwindows.org/images/screens/devcpp-projoptions.jpg

Brug "Load object files" (husk at vælg *.a som filter) find filen og tilføj den.
Avatar billede arne_v Ekspert
20. september 2003 - 22:39 #14
Ja.

Enten:

C:\wherever\allegro\lib\mingw32\liballeg.a

eller:

-LC:\wherever\allegro\lib\mingw32 -lalleg
Avatar billede nak-m Nybegynder
20. september 2003 - 22:42 #15
jeg har lagt begge links derinde nu men det hjælper ikke :)
Avatar billede nak-m Nybegynder
20. september 2003 - 22:43 #16
haha det duede jeg skulle skrive -lalleg under parameters->linker
Avatar billede nak-m Nybegynder
20. september 2003 - 22:45 #17
Eeej hold da op ... der dukkede et flot window op :D
Avatar billede nak-m Nybegynder
20. september 2003 - 22:45 #18
svar svar svar
Avatar billede soreno Praktikant
20. september 2003 - 22:51 #19
Ok Ok Ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester