Dynamisches linken einen Bibliothek

Gast #1532831
Lesenswert?

Hallo Community,

Ich beginne gerade mit der C-Programmierung unter Linux. Meine ersten 
Hallo Welt Programme funktionieren.

Nun möchte ich die Posix Thread Library (libpthread) verwenden. Die 
Bibliothek soll jedoch dynamisch gelinkt werden.

Kann mir dabei jemand beim Erstellen des passenden Makefiles helfen?
Leider komme ich damit noch nicht zurecht.

Danke im Voraus!!

lg Martin
Gast #1532869
Lesenswert?

Dynamisches Linken ist unter Linux normalerweise der Default, und die 
pthread-Library gibt man normalerweise nicht direkt an. Stattdessen gibt 
man dem Compiler und dem Linker die Kommandozeilen-Option -pthread mit.
Gast #1532958
Lesenswert?

Hallo Rolf,

Danke für den Tipp, jedoch funktioniert es leider noch nicht.

Es lässt sich alles kompilieren und auch linken (Mit einem 
Crosscompiler). Wenn ich es auf meiner Zielplattform (OpenWRT auf einem 
Router) ausführe, bekomme ich einen Fehler: "Illegal Instruction".

Woran liegt denn des?

Hier mein Makefile:
1
# build helloworld executable when user executes "make"
2

3
TARGET = helloworld
4
SRC = $(TARGET).c
5
STAGING_DIR = /home/user/Downloads/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir_mipsel
6
LIBPATH = $(STAGING_DIR)/lib
7
LIBS = -pthread
8

9
LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/lib
10

11
all: $(TARGET).c
12
  $(CC) -Wall $(LDFLAGS) -L$(LIBPATH) $(LIBS) -o $(TARGET) $(SRC) 
13

14
# remove object files and executable when user executes "make clean"
15
clean: rm *.o $(TARGET)

Danke für weitere Tipps!

lg Martin
#1533084
Lesenswert?

Habe jetzt von dem wrt-Zeugs keine Ahnung...

An dem Makefile vermisse ich irgendwie, daß für einen
anderen Rechner kompiliert werden soll.
Ich vermute, daß so für den lokalen Rechner übersetzt wird.

Deine funktionierenden Helloworld waren auch für OpenWRT?
Wie wurden die denn kompiliert?
Gast #1533096
Lesenswert?

Hallo Klaus,

Ja das Hello World funktioniert. Es gibt nämlich noch ein Toplevel 
Makefile pro Package, welches eben das "Source Makefile" aufruft.

Im Anhang habe ich das Top Level Makefile upgeloaded.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren