lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Ich habe ein Programm in C++ das ich als statische Library bereitstellen möchte.

#include <iostream>
using namespace std;

void sayHello()
{
    cout << "Hello world\n";
}

Wenn ich versuche diese Datei zu kompilieren bekomme ich diesen Fehler.

C:\jail-src-main>g++ mylib.cpp -o mylib.o
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

C:\jail-src-main>

Eine Bibliothek benötigt doch keine Main Methode oder?

von (1 Punkt)  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Du erzeugst nicht nur das Objektfile sondern rufst den Linker auf der standardmäßig nach einer main Methode sucht, um ein ausführbares Programm zu erstellen. Verwende den POarameter -c um nur zu kompilieren.

g++ -c mylib.cpp -o mylib.o

Aus dem Objectfile erzeugst du dann eine statische .a Datei.

ar rcs libmylib.a mylib.o
von (483 Punkte)  
Stimmt, der steht sogar dabei aber ich habe das vergessen.
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

12 Nutzer