Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1019 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Résolu]Compiler pour obtenir un .obj (C/Delphi)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Compiler pour obtenir un .obj (C/Delphi)

n°1865583
loker
Posté le 25-03-2009 à 10:18:01  profilanswer
 

Bonjour,
 
Je travaille actuellement sur un projet twain en delphi et j'utilise des fichiers en .c et .h qui ont été compilé pour obtenir un .obj permettant ainsi d'utiliser ces libraires avec delphi.
 
Cependant j'aimerais modifier le fichier .c et le recompiler pour obtenir le .obj mais je ne sais pas comment faire cela et je ne trouve rien qui l'explique sur le net.
 
En espérant trouver un peu d'aide ici
 
Merci par avance
 
Loic.


Message édité par loker le 06-04-2009 à 10:20:12
mood
Publicité
Posté le 25-03-2009 à 10:18:01  profilanswer
 

n°1865597
Joel F
Real men use unique_ptr
Posté le 25-03-2009 à 10:37:45  profilanswer
 

bah tu récupéres visual studioou gcc et tu compile ton .c

n°1865602
loker
Posté le 25-03-2009 à 10:55:47  profilanswer
 

J'ai à ma disposition dev c++ est-il possible de le faire avec? actuellement quand je compile mon .c j'obtient un .o

n°1865657
olivthill
Posté le 25-03-2009 à 13:18:30  profilanswer
 

Dev-c++ permet de générer des fichiers objets, dont l'extension est ".o" ou ".obj" ou autre.
Ensuite, il y a deux possibilités :
 
1. Linker ensemble tous les fichiers objets, c'est-à-dire utiliser un éditeur de liens pour créer un exécutable à partir des fichiers objets qui proviennent des sources écrites en C et en d'autres langages (je ne sais si Delphi peut produire des fichiers objets, mais je suppose que oui).
 
2. Ou bien, mettre les fichiers objets provenant du code C, dans une bibliothèque. Puis utiliser cette bibliothèque avec les autres programmes par un lien statique si la bibliothèque est statique, ou par le biais des liens dynamiques si la bibliothèque est dynamique.

n°1865682
loker
Posté le 25-03-2009 à 14:24:08  profilanswer
 

Le probleme actuellement est que lorsque je compile avec dev c++ j'obtient le fichier .o mais si je remplace mon fichier .obj par la nouveau .o delphi me dit : Format de fichier objet incorrect

n°1865686
kao98
...
Posté le 25-03-2009 à 14:42:05  profilanswer
 

Dans les options ou propriétés du projet, tu dois pouvoir lui dire de générer un .obj plutôt qu'un .o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1865692
loker
Posté le 25-03-2009 à 14:54:55  profilanswer
 

Il doit y'avoir une compilation spéciale pour le .obj puisque quand je regarde sa taille dans mon projet il fait 68 ko alors que le .o que j'obtient moi ne fait que 18ko avec les même fichiers sources.
 
Si quelqu'un connait une solution je suis preneur

n°1865768
Joel F
Real men use unique_ptr
Posté le 25-03-2009 à 16:39:28  profilanswer
 

obj = truc compilé avec visual :o

n°1865778
loker
Posté le 25-03-2009 à 16:51:50  profilanswer
 

Ok je vais essayer avec visual alors
 

n°1865787
olivthill
Posté le 25-03-2009 à 16:56:11  profilanswer
 

Il existe plusieurs formats de fichiers objet, sans que cela ait nécessairement de rapport avec l'extension ".obj" ou ".o". Par exemple, il existe des ".obj" pour DOS, d'autre pour Windows 16-bit, etc. De plus il existe des variantes si l'on a des threads ou pas, si l'on veut avoir du code réentrant ou non, etc. Donc cela dépend en grande partie de l'environnement, et celui-ci n'est pas décrit dans la question.
 
Dev-C++ est capable de générer n'importe quel type de fichier objet car Dev-c++ n'est qu'un IDE, lequel peut utiliser mingwcc ou gnucc ou d'autres compilateurs. De base, les fichiers objets créés par dev-c++ ont le même format que ceux générés par Visual C++. Il est possible de définir certaines options dans le paramètrage du projet, mais comme Dev-C++ utilise un fichier makefile, il sans doute plus simple d'aller directement éditer ce makefile pour avoir les bonnes options de compilation.

Message cité 1 fois
Message édité par olivthill le 25-03-2009 à 16:59:28
mood
Publicité
Posté le 25-03-2009 à 16:56:11  profilanswer
 

n°1865811
loker
Posté le 25-03-2009 à 17:21:46  profilanswer
 

olivthill a écrit :

Il existe plusieurs formats de fichiers objet, sans que cela ait nécessairement de rapport avec l'extension ".obj" ou ".o". Par exemple, il existe des ".obj" pour DOS, d'autre pour Windows 16-bit, etc. De plus il existe des variantes si l'on a des threads ou pas, si l'on veut avoir du code réentrant ou non, etc. Donc cela dépend en grande partie de l'environnement, et celui-ci n'est pas décrit dans la question.
 
Dev-C++ est capable de générer n'importe quel type de fichier objet car Dev-c++ n'est qu'un IDE, lequel peut utiliser mingwcc ou gnucc ou d'autres compilateurs. De base, les fichiers objets créés par dev-c++ ont le même format que ceux générés par Visual C++. Il est possible de définir certaines options dans le paramètrage du projet, mais comme Dev-C++ utilise un fichier makefile, il sans doute plus simple d'aller directement éditer ce makefile pour avoir les bonnes options de compilation.


 
 
Je vais résumer les choses alors:
 
Je développe un projet permettant de scanner depuis une application delphi.
 
Pour cela j'ai téléchargé un composant nommée multitwain que vous pourrait consulter ici : http://www.delphifr.com/codes/TWAI [...] 19267.aspx
 
Avec ce composant et fournit un header eztwain.h utilisant le header twain.h ainsi que l'implémentation des fonctions de eztwain.h dans eztwain.c.
 
Avec ceci il y'a un fichier nommé eztwain.obj qui est utilisé dans le composant delphi multitwain.pas pour permettre d'avoir accès au fonctions du code en C.
 
Mon problème est donc que lorsque je modifie le .c les modifications ne sont pas prises en compte j'en ai donc déduit qu'il fallait que je recrée le fichier .obj
 
C'est pourquoi je voulais savoir comment compiler pour obtenir le fichier eztwain.obj
 
Merci d'avance,
 
Loic
 
edit: librairies header merci de la précisions ^^


Message édité par loker le 25-03-2009 à 17:55:12
n°1865814
olivthill
Posté le 25-03-2009 à 17:24:36  profilanswer
 

Petite remarque : Les fichiers ".h" ne sont pas des librairies, mais des "headers". Les librairies sont des fichiers ".lib" ou ".a" ou parfois ".so", ou encore ".dll".

n°1865981
loker
Posté le 26-03-2009 à 09:49:18  profilanswer
 

On ma conseillé d'essayer avec turbo c++ qu'en pensez vous?

n°1866100
olivthill
Posté le 26-03-2009 à 12:11:09  profilanswer
 

turboC ne présente aucun avantage par rapport à Dev-C++ ou à Visual (Studio) C++.
turboC ne crée que des fichiers objets pour DOS.
Est-ce que vous voulez faire un programme pour DOS ou Windows 16-bit Windows 32-bit ou Unix et quel Unix dans ce cas (c'était ma question sur l'environnement) ?
 
Chercher un tutorial sur les makefile pourrait être utile, car cela permettrait de comprendre comment est génèré un fchier objet et comment est génèré un exécutable à partir de plusieurs fichiers objets avec ou sans bibliothèques. Je ne connais pas beaucoup Delphi, mais s'il y avait une documentation sur un makefile pour Delphi, cela serait aussi une bonne chose à voir.
 
Edit : J'ai trouvé cet article (http://rvelthuis.de/articles/articles-cobjs.html ) sur le sujet. Il y est dit qu'il existe un "turbo C++ Explorer". Je ne connaissais pas cette nouvelle variante du TurboC (quoi qu'il en soit, je continue à penser que l'on peut avoir le même résultat avec Dev-C++ en choisissant le bon compilateur à utiliser et les bonnes options de compilation, et je pense qu'il en est de même pour Visual C++, mais ce n'est pas très important). Ensuite, d'après mes souvenirs de TWAIN, il ne s'agissait pas d'un seul fichier .obj, mais de plusieurs. Donc, je crois qu'il faudra que vous utilisiez une bibliothèque.

Message cité 1 fois
Message édité par olivthill le 26-03-2009 à 12:41:47
n°1866183
loker
Posté le 26-03-2009 à 14:09:38  profilanswer
 

olivthill a écrit :


 
Edit : J'ai trouvé cet article (http://rvelthuis.de/articles/articles-cobjs.html ) sur le sujet.
 
 


 
C'est exactement ce que je veux faire mais il explique la compilation avec bds2006 ou c++Builder qui sont tout les deux payants  :fou:  
 
J'ai étudié le makefile de dev c++ je n'ai pas encore trouver les option pour compiler en .obj j'arrive a compiler en .o mais delphi me dit que le format de fichier objet est incorrect. :??:  
 
Si un expert en C et en compilation passe par ici...
 
Au sujet de twain j'utilise eztwain qui fonctionne avec un seul .obj issu de eztwain.c eztwain.h et twain.h je présume
 
Tu peu avoir tout les fichiers dans le lien que j'ai fournit plus haut
 
Merci de votre aide,  
 
Loic  

n°1866242
loker
Posté le 26-03-2009 à 15:35:42  profilanswer
 

Je pense avoir trouvé
 
J'ai téléchargé turbo c++ je l'ai installe ce n'as pas était facile, il me demandé plein de composant windows que j'ai réussi a télécharger, une fois installer pas de possibilité de le lancer car payant il me demandais la clé cependant grâce au lien que tu m'a donne j'ai été dans le dossier d'installation dans les bin et je compile avec bcc32.exe en ligne de commande et il me fournit bien le fichier .obj qui fonctionne tres bien avec delphi.
 
Merci a tous si des gens dans la même situation on besoin d'aide contacté moi,
 
Loic.
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Résolu]Compiler pour obtenir un .obj (C/Delphi)

 

Sujets relatifs
Comment modiifier ce code pour avoir une recherche multiple?[Resolu]Installer HTMLDOC sous centos
Nouveaux fichiers avec trop peu de droit [Résolu]Sockets asynchrones en C sous Windows
[Résolu][Swing] Dessiner avec la sourisFonction C times en Ada.
[Débutant] Arret d'une boucle en C++[AIDE SVP] Lancer projet C++ sur autre un ordinateur sans VS 2008
[resolu]comment revenir sur page de résultats?[résolu] Création de dossier
Plus de sujets relatifs à : [Résolu]Compiler pour obtenir un .obj (C/Delphi)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR