2010-12-20 17 views
8

Also entwickle ich mein Projekt in Eclipse in Ubuntu 10.04. Ich habe die folgenden Codezeilen:undefined Verweis auf `Forkpty '

#include <pty.h> 

pid_t pid; 
int master; 

pid = forkpty(&master, NULL, NULL, NULL); 

Aber wenn ich versuche es innerhalb von Eclipse zu bauen, erhalte ich die Fehlermeldung:

undefined reference to 'forkpty' 

Jede Idee, wie dieses Problem zu lösen?

+0

RTNM. Sagt "Link mit -Lutils". – user502515

Antwort

14

Sie benötigen das Befehlszeilenargument -lutil (um libutil shared library zu verwenden).
Für Eclipse: http://zetcode.com/articles/eclipsecdevelopment/

Wählen Sie Projekteigenschaften. Erweitern Sie die Registerkarte C/C++ Build. Einstellungen auswählen. Erweitern Sie auf der Registerkarte Werkzeugeinstellungen die Option GCC C Linker. Klicken Sie auf Bibliotheken. Fügen Sie das /usr/lib/libutil.so zum Bibliotheksfenster hinzu. Beachten Sie, dass dieser Pfad auf Ihrem System anders sein kann.

+0

Wow, danke, das hat das Problem gelöst – Hank

+1

@Hank Sie sollten diese Antwort "akzeptieren", indem Sie auf das Häkchen-Symbol klicken. Das wird MK Reputationspunkte geben (eine Art Karma-System hier bei Stack Overflow). Sie können auch unsere beiden Antworten verbessern. – chrisaycock

+1

Ich musste util und nicht /usr/lib/libutil.so hinzufügen, damit es funktioniert – Hank

5

Das ist ein Verknüpfungsfehler; Sie vermissen die util Bibliothek. Tun Sie dies auf der Kommandozeile zu bauen:

g++ myprogram.cpp -lutil 

Eclipse-sollte auf Projektebene Einstellungen zum Auflisten der Bibliotheken zu verknüpfen gegen.

+0

Wie würde ich das in Eclipse tun? – Hank

+0

@ MK's Antwort scheint die Einstellungen zu haben, die Sie für Eclipse benötigen. Probieren Sie es aus und sehen Sie, was passiert. – chrisaycock

0

kam ich auf dieses Problem, wenn ich delegate
So zu installieren versuchte, wenn Sie make Delegierten versuchen und Fehler immer

undefined reference to `forkpty' 

so _-forkpty.c Datei in maker Ordner

vim maker/_-forkpty.c bearbeiten und hinzufügen
#include <util.h>

make clean 
make