Hallo zusammen...
ich bin auf der Suche nach einem einachen weg eine Komponente/Klasse ohne den VDR zu testen. Eigentlich ganz einfach: ein kleines Consolen-Program muss her, welches mit den Komponenten arbeitet.
Sagen wir, ich will Komponente A aus Plugin X testen:
C
#include <stdio.h>
#include <stdint.h>
#include <iostream>
#include <fstream>
using namespace std;
#include "a.h"
void usage() {
printf("test file\n\n");
}
int main(int argc, char* argv[]) {
// check if there are enough arugments
if (argc < 2) {
usage();
return 1;
}
// try to open file
ifstream is;
is.open (argv[1], ios::binary );
// file not open?
if (!is) {
printf("failed to open file %s\n", argv[1]);
return -1;
}
// get length of file:
is.seekg (0, ios::end);
int length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
char* buffer = new char [length];
// read data as a block:
is.read (buffer,length);
// close file
is.close();
// create new a
A* pA = new A();
A->tuewasmitBuffer(buffer, length);
// free memory
delete A;
delete buffer;
return 0;
}
Alles anzeigen
Eigentlich ganz easy, doch ich weiss nicht, wie ich das Makefile anpasssen muss. Habe ein Target test hinzugefügt und rufe schön brav den g++ auf.. scheint alles noch zu passen, bis...
Code
$ make test
g++ -fPIC -g -O2 -Wall -Woverloaded-virtual test.cpp -o test
/tmp/ccnJLXlj.o: In function `main':
/home/austriancoder/workspace/A/test.cpp:63: undefined reference to `A::tuewasmitBuffer(char*, int)'
collect2: ld returned 1 exit status
make: *** [test] Error 1
Wie mache ich das richtig?
Danke,
AC