[C++] GD2 verwenden

Napofis

require 'brain.php';
Hallo Forum,

ich bin gerade dabei C++ zu lernen. Zur Übung möchte ich ein kleines Programm schreiben das mir Ordner Etiketten druckt.

Um die Grafiken zu generieren wollte ich die GD2 nutzen, die hab ich mir auch schon von der HP heruntergeladen. Allerdings weiß ich nicht wie ich diese jetzt einbinden und nutzen kann?

Das selbe gilt für Reguläre ausdrücke, welche Bibliothek muss ich includen damit ich diese Muster nutzen kann?


Hoffentlich kann mir jemand helfen? Ich verwende Ubuntu 11.4 32-Bit und die Netbeans IDE 7.0.1.

Schöne Grüße
Napofis
 
Hi.

Also wenn du Ubuntu verwendest, führst du einfach diesen Befehl aus:
Code:
sudo apt-get install libpcre3-dev libgd2-xpm-dev
Danach kannst du die Header ganz normal einbinden:
C:
#include <gd.h>
#include <pcre.h>
Außerdem mußt du dann natürlich die pcre und gd Bibliothek zu deinem Programm dazulinken.

\edit: In C++ könntest du für reg. Ausdrücke natürlich auch gleich die std::tr1 regex Klassen nutzen :google: oder statt libpcre den C++ Wrapper libpcre++.

Gruß
 
Zuletzt bearbeitet:
Hi Danke für die Hilfe, das hat soweit auch geklappt.
Nun kommt immer nur dieser Fehler:
Code:
main.cpp:(.text+0x1b): undefined reference to `gdImageCreateTrueColor'
main.cpp:(.text+0x3d): undefined reference to `gdImageColorAllocate'
main.cpp:(.text+0x59): undefined reference to `gdImageFill'
main.cpp:(.text+0x83): undefined reference to `gdImagePngEx'
main.cpp:(.text+0x93): undefined reference to `gdImageDestroy'
collect2: ld returned 1 exit status

Hier mal das Test Programm:
C++:
#include <iostream>
#include <gd.h>
#include <fstream>

using namespace std;


int main(int argc, char** argv) {

	gdImage* img=gdImageCreateTrueColor(100, 100);
	int black = gdImageColorAllocate(img, 0, 0, 0);
	gdImageFill(img, 0, 0, black);
	
	FILE* out = fopen("/tmp/test.png","wb");
	gdImagePngEx(img,out,9);
	fclose(out);
	gdImageDestroy(img);
	
	return 0;
}
 
Hi.

Wie bereits gesagt, musst du die gd Bibliothek zu deinem Programm linken.

Irgendwo in Netbeans muss es eine Projekt-Einstellung dafür geben. Linker -> Bibliotheken oder ähnlich.

Gruß
 
Super Danke, war nicht so einfach aber jetzt hab ichs gefunden und alles klappt ^^.

Es war unter Projekt Eigenschaften -> build -> linker -> libraries
Dort hab ich die /usr/lib/libgd.a und libgd.so hinzugefügt. Ich hoffe mal das war das richtige.


Danke für die Hilfe, dir noch einen schönen Abend.

Gruß Napofis
 
Hi.
Es war unter Projekt Eigenschaften -> build -> linker -> libraries
Dort hab ich die /usr/lib/libgd.a und libgd.so hinzugefügt. Ich hoffe mal das war das richtige.
Nicht ganz. Jetzt ist es doppelt gemoppelt, da du sowohl die statische als auch die dynamische Bibliothek angegeben hast.

Du brauchst nur eine. (in der Regel die dynamische => .so).

\edit: es reicht wenn du auf "Add Library..." klickst und "gd" eintippst. Du mußt nicht ein bestimmte Datei suchen.

Gruß
 
Zuletzt bearbeitet:
Zurück