AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Linken von Obj Dateien

Ein Thema von flashpixx · begonnen am 6. Okt 2019 · letzter Beitrag vom 9. Okt 2019
Antwort Antwort
flashpixx

Registriert seit: 25. Jul 2019
15 Beiträge
 
#1

Linken von Obj Dateien

  Alt 6. Okt 2019, 15:59
Hallo,

ich habe eine C Bibliothek, die ich gerne direkt mit in BPL mit linken möchte. Ich arbeite mit dem Rad Studio 12.2.3 (Tokio). Ich kompiliere die einzelnen C Dateien mit Visual Studio und erhalte die OBJ-Dateien. Im Delphi Code habe ich den Eintrag
Code:
{$L c_path\mylib.obj}
stehen, aber ich erhalte den Fehler dcc32 Fehler E2065 Ungenügende Forward- oder External Deklaration . Die entsprechende C Funktionen sind mit cdecl und external im Pascal Code gekennzeichnet. Die C-Dateien selbst lassen sich ohne Probleme mit
Code:
cl /c mylib.c
übersetzen.

Wie linke ich die Dateien korrekt zusammen?

Danke
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Linken von Obj Dateien

  Alt 6. Okt 2019, 17:01
Hallo,
ich glaube nicht, dass die Formate kompatibel,sind.
DLL oder COM-Objekt wäre eine Lösung.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#3

AW: Linken von Obj Dateien

  Alt 6. Okt 2019, 17:40
Ich kenne auch nur funktionierende Lösungen, bei denen die obj-Dateien mit C++-Builder compiliert wurden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
flashpixx

Registriert seit: 25. Jul 2019
15 Beiträge
 
#4

AW: Linken von Obj Dateien

  Alt 6. Okt 2019, 22:07
Wenn ich die C-Dateien mit cem C++-Builder übersetze in OBJ-Dateien, dann sollte das funktionieren? Mein Ziel ist es eine BPL zu erzeugen und eben dort einzelne C-Funktionen zu nutzen ohne eine zusätzliche DLL o.ä.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Linken von Obj Dateien

  Alt 7. Okt 2019, 10:53
Hallo,
vielleicht hilft Dir dieser Link weiter.

http://rvelthuis.de/articles/articles-cobjs.html
Heiko
  Mit Zitat antworten Zitat
flashpixx

Registriert seit: 25. Jul 2019
15 Beiträge
 
#6

AW: Linken von Obj Dateien

  Alt 7. Okt 2019, 21:30
Aus meiner Sicht sollte es aber, da das Name Mangling bei C normiert ist, eigentlich sollte es somit passen. Ich schaue mir den C++ Builder einmal und versuche es damit
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#7

AW: Linken von Obj Dateien

  Alt 8. Okt 2019, 06:37
Vielleicht hilft Dir das hier und das weiter ?
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#8

AW: Linken von Obj Dateien

  Alt 9. Okt 2019, 11:12
Microsoft verwendet für Objektdateien das COFF Format. Delphi verwendet das OMF Format. Es braucht also erst mal eine Umwandlung Coff2Omf.
  Mit Zitat antworten Zitat
flashpixx

Registriert seit: 25. Jul 2019
15 Beiträge
 
#9

AW: Linken von Obj Dateien

  Alt 9. Okt 2019, 16:22
Microsoft verwendet für Objektdateien das COFF Format. Delphi verwendet das OMF Format. Es braucht also erst mal eine Umwandlung Coff2Omf.
Habe ich mittels Objconv versucht. Ich habe auch einmal den bcc32 ausprobiert und mir die Obj-Dateien erzeugt, aber weder die bcc32 kompilierten Obj-Dateien noch die von von MS Visual Studio compilierten Dateien lassen sich in irgendeiner Form mit dem dcc32 linken. Der Fehler E2065 "Ungenügende Forward- oder External-Deklaration" erscheint weiterhin. Wenn ich mit dumpbin mir die Symbole in der Obj-Datei anschaue, dann stimmen diese auch. Ebenso wenn im Pascal Code ein cdecl oder external verändere, habe ich keine Chance.
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:54 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