AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [MinGW] Mehrere DLLs zu einer linken

[MinGW] Mehrere DLLs zu einer linken

Ein Thema von Nils_13 · begonnen am 19. Jul 2008 · letzter Beitrag vom 20. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2   
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

[MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 10:36
Hi,

wie kann man mit MinGW mehrere DLLs zu einer einzigen linken ? Ich besitze 12 und möchte diese zur besseren Bedienung und Übersicht in einer haben. Es handelt sich genaugenommen um die Kompilierung von FFMpeg, Ziel ist es eine Shared-Library zu bekommen, ich habe aber derzeit 12.
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 12:52
du müsstest etwas am makefile ändern und die ganzen Objektdateien zu einer dll linken.
(man gcc und man ld helfen dir dabei)

uU. musst du noch nen bisschen was in den Dateien ändern um doppelte Funktionsnamen zu verhindern und ggf. die DllMain-Funktionen der einzelnen dlls zu einer machen.

Code:
gcc x.o y.o -shared -oall_in_one.dll -lwldap32 -lws2_32 -lwinmm ...
wies mit der Lizenz aussieht weiß ich nich. Ich glaube wenn du was an nem lgpl-Programm änderst musst du die Änderungen als lgpl veröffentlichen.
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Benutzerbild von smallsmoker
smallsmoker

Registriert seit: 12. Nov 2007
Ort: Duisburg
283 Beiträge
 
#3

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 13:22
vieleicht hilft dir das weiter:
BeRo DLL Linker Compressor
mfg smallsmoker
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#4

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 16:12
Danke new32.
Der Compressor ist ein Virus.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#5

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 16:37
Zitat von Nils_13:
Der Compressor ist ein Virus.
Sicher? Auf der Seite sind haufenweise hinweise zu False-Positives. Das selbe Problem hat ja auch InnoSetup, weil irgendwelche ****** meinen, damit Trojaner verteilen zu müssen...

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 20:49
Hat jemand eine Idee, was hier schiefgeht ? Es scheint eine Bibliothek zu fehlen. Aber welche ? Es kann gut sein, dass die Bibliothek trotz Installation von ein paar Zusatzpaketen fehlt, aber ich sehe kein weiteres Paket mehr, welches man noch installieren könnte. Hier alle Fehler, dass es sich um Netzwerkprobleme handelt sieht man sofort. Ein --disable-ffserver bringt beim configure übrigens nichts.
Zitat:
gcc -shared -o video.dll video.o lib/libavformat.a lib/libavcodec.a lib/libavutil.a -lm
lib/libavformat.a(rtsp.o): In function `udp_read_packet':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtsp.c:1194: undefined reference to `_select@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtsp.c:1199: undefined reference to `___WSAFDIsSet@8'
lib/libavformat.a(rtsp.o): In function `rtsp_parse_transport':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtsp.c:672: undefined reference to `_ntohl@4'
lib/libavformat.a(rtsp.o): In function `make_setup_request':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtsp.c:975: undefined reference to `_htonl@4'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtsp.c:976: undefined reference to `_inet_ntoa@4'
lib/libavformat.a(rtsp.o): In function `sdp_read_header':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtsp.c:1416: undefined reference to `_inet_ntoa@4'
lib/libavformat.a(rtpproto.o): In function `rtp_read':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpproto.c:214: undefined reference to `_select@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpproto.c:217: undefined reference to `___WSAFDIsSet@8'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpproto.c:232: undefined reference to `_recvfrom@24'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpproto.c:235: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpproto.c:235: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpproto.c:230: undefined reference to `___WSAFDIsSet@8'
lib/libavformat.a(tcp.o): In function `tcp_close':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:181: undefined reference to `_closesocket@4'
lib/libavformat.a(tcp.o): In function `ff_network_close':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/network.h:60: undefined reference to `_WSACleanup@0'
lib/libavformat.a(tcp.o): In function `tcp_write':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:160: undefined reference to `_select@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:161: undefined reference to `___WSAFDIsSet@8'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:162: undefined reference to `_send@16'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:164: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:164: undefined reference to `_WSAGetLastError@0'
lib/libavformat.a(tcp.o): In function `tcp_read':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:130: undefined reference to `_select@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:131: undefined reference to `___WSAFDIsSet@8'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:132: undefined reference to `_recv@16'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:134: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:134: undefined reference to `_WSAGetLastError@0'
lib/libavformat.a(tcp.o): In function `tcp_open':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:110: undefined reference to `_closesocket@4'
lib/libavformat.a(tcp.o): In function `ff_network_init':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/network.h:51: undefined reference to `_WSAStartup@8'
lib/libavformat.a(tcp.o): In function `tcp_open':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:62: undefined reference to `_htons@4'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:66: undefined reference to `_socket@12'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:75: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:72: undefined reference to `_connect@12'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:77: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:77: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:92: undefined reference to `_select@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:93: undefined reference to `___WSAFDIsSet@8'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/tcp.c:99: undefined reference to `_getsockopt@20'
lib/libavformat.a(udp.o): In function `udp_leave_multicast_group':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:115: undefined reference to `_setsockopt@20'
lib/libavformat.a(udp.o): In function `udp_close':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:483: undefined reference to `_closesocket@4'
lib/libavformat.a(udp.o): In function `ff_network_close':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/network.h:60: undefined reference to `_WSACleanup@0'
lib/libavformat.a(udp.o): In function `udp_write':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:467: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:463: undefined reference to `_sendto@24'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:467: undefined reference to `_WSAGetLastError@0'
lib/libavformat.a(udp.o): In function `udp_read':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:447: undefined reference to `_WSAGetLastError@0'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:445: undefined reference to `_recv@16'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:447: undefined reference to `_WSAGetLastError@0'
lib/libavformat.a(udp.o): In function `udp_set_url':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:241: undefined reference to `_htons@4'
lib/libavformat.a(udp.o): In function `is_multicast_address':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:248: undefined reference to `_ntohl@4'
lib/libavformat.a(udp.o): In function `udp_set_url':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:241: undefined reference to `_htons@4'
lib/libavformat.a(udp.o): In function `is_multicast_address':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:248: undefined reference to `_ntohl@4'
lib/libavformat.a(udp.o): In function `ff_network_init':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/network.h:51: undefined reference to `_WSAStartup@8'
lib/libavformat.a(udp.o): In function `udp_socket_create':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:255: undefined reference to `_socket@12'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:260: undefined reference to `_htonl@4'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:261: undefined reference to `_htons@4'
lib/libavformat.a(udp.o): In function `udp_open':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:393: undefined reference to `_setsockopt@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:397: undefined reference to `_bind@12'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:401: undefined reference to `_getsockname@12'
lib/libavformat.a(udp.o): In function `udp_port':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:269: undefined reference to `_ntohs@4'
lib/libavformat.a(udp.o): In function `udp_set_multicast_ttl':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:63: undefined reference to `_setsockopt@20'
lib/libavformat.a(udp.o): In function `udp_open':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:434: undefined reference to `_closesocket@4'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:419: undefined reference to `_setsockopt@20'
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:427: undefined reference to `_setsockopt@20'
lib/libavformat.a(udp.o): In function `udp_join_multicast_group':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/udp.c:87: undefined reference to `_setsockopt@20'
lib/libavformat.a(rtpdec.o): In function `rtp_parse_open':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/rtpdec.c:311: undefined reference to `_gethostname@8'
lib/libavformat.a(os_support.o): In function `ff_socket_nonblock':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/os_support.c:75: undefined reference to `_ioctlsocket@12'
lib/libavformat.a(os_support.o): In function `resolve_host':
e:\Eigene Projekte\Dark Player\video\C\ffmpeg/libavformat/os_support.c:64: undefined reference to `_gethostbyname@4'
collect2: ld returned 1 exit status
make: *** [video] Error 1
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 20:57
PSDK sagt zu "setsockopt" "Ws2_32.lib"
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Benutzerbild von p0w3r5tr34m3r
p0w3r5tr34m3r

Registriert seit: 18. Aug 2003
Ort: Monheim am Rhein
153 Beiträge
 
RAD-Studio 2009 Pro
 
#8

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 21:05
sind alles socket - funktionen.. Binde also noch Winsock2 ("[...] -lws2_32 [...]") mit in den cmd und es sollte passen
Florian Cülter
ich bin ein notorischer alles-klein-schreiber!

der 100. Beitrag nach 3 Jahren 25 Wochen und einem Tag
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 21:08
Passt leider immernoch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von smallsmoker
smallsmoker

Registriert seit: 12. Nov 2007
Ort: Duisburg
283 Beiträge
 
#10

Re: [MinGW] Mehrere DLLs zu einer linken

  Alt 19. Jul 2008, 21:25
Zitat von Assertor:
Zitat von Nils_13:
Der Compressor ist ein Virus.
Sicher? Auf der Seite sind haufenweise hinweise zu False-Positives. Das selbe Problem hat ja auch InnoSetup, weil irgendwelche ****** meinen, damit Trojaner verteilen zu müssen...

Gruß Assertor
richtig auch der beroexepacker wird leider als virud erkannt ... danke script kiddies ...
dabei hatt er viel bessere pack ratios als UPX !
exe ohne: ~700 kb
UPX: ~350kb
bep: ~300 kb

mfg smallsmoker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz