Hallo,
ich versuche eine statische Bibliothek aus einer Klasse zu erzeugen und diese dann in meinem Programm zu verwenden.
Ich habe dazu die folgenden Dateien angelegt
main.cpp
Klasse.h
Klasse.cpp
Außerdem das folgende script das mir eine Bibliothek binden und zu der main linken soll.
Allerdings bekomme ich immer folgende Ausgabe:
Wieso findet der Linker meine Klasse nicht?
Viele Grüße,
Benny
ich versuche eine statische Bibliothek aus einer Klasse zu erzeugen und diese dann in meinem Programm zu verwenden.
Ich habe dazu die folgenden Dateien angelegt
main.cpp
Code:
#include "Klasse.h"
int main() {
Klasse k;
k.make();
}
Klasse.h
Code:
#ifndef KLASSE_H
#define KLASSE_H
class Klasse {
public:
void make();
};
#endif
Klasse.cpp
Code:
#include "Klasse.h"
#include <iostream>
using namespace std;
void Klasse::make() {
cout << "Hallo Welt" <<endl;
}
Außerdem das folgende script das mir eine Bibliothek binden und zu der main linken soll.
Code:
#!/bin/bash
g++ Klasse.cpp -c
echo "------------------------KLASS COMPILED"
ar rcs libKLib.a Klasse.o
echo "------------------------KLASS BIND TO LIB"
g++ main.cpp -c
echo "------------------------MAIN COMPILED"
g++ -L. -lkLib main.o -o prog
echo "------------------------MAIN LINKED WITH KLASSEN LIB"
Allerdings bekomme ich immer folgende Ausgabe:
------------------------KLASS COMPILED
------------------------KLASS BIND TO LIB
------------------------MAIN COMPILED
main.o: In function `main':
main.cpp: (.text+0x11): undefined reference to `Klasse::make()'
collect2: ld returned 1 exit status
------------------------MAIN LINKED WITH KLASSEN LIB
Wieso findet der Linker meine Klasse nicht?
Viele Grüße,
Benny