[Linux] Shared Libraries im gleichen Verzeichnis
Verfasst: Do Apr 25, 2013 12:05 pm
Hiho, folgendes Beispiel:
utils.hpp
utils.cpp
Daraus möchte ich eine Shared Library bauen, was mir mit
auch gelinkt.
Nur bekomme ich die Shared Library nicht gelinkt:
main.cpp
Ist es generell so, dass meine Shared Libraries in einem bestimmten Verzeichnis liegen müssen, oder bekomme ich es irgendwie so gedreht, dass die .so auch im lokalen Verzeichnis liegen darf? (vgl. DLLs unter Windows) Verbiete ich den Suchpfad mit -L./, bekomme ich für iostream massive Probleme. Offensichtlich setze ich den Pfad so nur, kann aber keinen neuen hinzufügen.
LG Glocke
utils.hpp
Code: Alles auswählen
#ifndef UTILS_HEADER_GUARD
#define UTILS_HEADER_GUARD
int square(int x);
#endif
Code: Alles auswählen
#include "utils.hpp"
int square(int x) {
return x * x;
}
Code: Alles auswählen
g++ -fPIC -shared -o libUtils.so utils.cpp
Nur bekomme ich die Shared Library nicht gelinkt:
main.cpp
Code: Alles auswählen
#include <iostream>
#include "utils.hpp"
int main() {
int x = 3;
std::cout << x << "^2 = " << square(x) << std::endl;
}
Code: Alles auswählen
g++ -o main main.cpp -lUtils
/usr/bin/ld: cannot find -lUtils
collect2: ld gab 1 als Ende-Status zurück
LG Glocke