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

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

Marsh Posté le 25-03-2009 à 10:18:01    

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
Reply

Marsh Posté le 25-03-2009 à 10:18:01   

Reply

Marsh Posté le 25-03-2009 à 10:37:45    

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

Reply

Marsh Posté le 25-03-2009 à 10:55:47    

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

Reply

Marsh Posté le 25-03-2009 à 13:18:30    

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.

Reply

Marsh Posté le 25-03-2009 à 14:24:08    

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

Reply

Marsh Posté le 25-03-2009 à 14:42:05    

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
Reply

Marsh Posté le 25-03-2009 à 14:54:55    

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

Reply

Marsh Posté le 25-03-2009 à 16:39:28    

obj = truc compilé avec visual :o

Reply

Marsh Posté le 25-03-2009 à 16:51:50    

Ok je vais essayer avec visual alors
 

Reply

Marsh Posté le 25-03-2009 à 16:56:11    

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
Reply

Marsh Posté le 25-03-2009 à 16:56:11   

Reply

Marsh Posté le 25-03-2009 à 17:21:46    

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
Reply

Marsh Posté le 25-03-2009 à 17:24:36    

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".

Reply

Marsh Posté le 26-03-2009 à 09:49:18    

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

Reply

Marsh Posté le 26-03-2009 à 12:11:09    

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
Reply

Marsh Posté le 26-03-2009 à 14:09:38    

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  

Reply

Marsh Posté le 26-03-2009 à 15:35:42    

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.
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed