web-dev-qa-db-fra.com

La liaison échoue [erreur ilink32] Fatal: impossible d'ouvrir le fichier 'TYPES.OBJ'

J'ai mis à jour le code d'une ancienne construction de projet hérité en utilisant C++ Builder 201 pour compiler avec C++ Builder 10 Seattle. J'ai surtout dû changer de chemin, beaucoup de dupIgnore à TDuplicates::dupIgnore, Réimporter certains composants comme MSXML et - MSMQ etc.

D'abord pour un tas de sous-projets que le projet principal utilise sous forme de bpl et de dll et enfin le code du projet principal compile.

Mais ... il échoue une liaison: P

[ilink32 Error] Fatal: Unable to open file 'TYPES.OBJ'

J'ai essayé de trouver des informations sur les problèmes potentiels et beaucoup mentionnent que System est fourni dans les paramètres nit Scope sous Delphi Compiler. Mais c'est déjà présent pour ce projet. Que pourrait-il y avoir d'autre?

Pour information. Compilé à l'aide du compilateur bcc32 "classique" pour l'instant.

Inclure le chemin:

$(BDSINCLUDE)\windows\vcl;$(BDSINCLUDE)\dinkumware;

Chemin d'accès à la bibliothèque:

$(BDSLIB)\$(PLATFORM)\$(Config);$(BDSLIB)\$(PLATFORM)\Release\psdk;
55
inquam

Je pense que vous devriez trouver la chaîne TYPES.OBJ dans tous les fichiers de votre projet, après avoir supprimé cette chaîne des fichiers trouvés. Avant cela, n'oubliez pas de créer un répertoire de projet de sauvegarde.

J'ai eu un problème similaire lorsque j'ai converti un ancien projet de BCB5 en BCB 6. Lorsque j'ai supprimé la chaîne avec le nom de fichier ".obj" du fichier de projet avec l'extension ".bpr", mon problème a été résolu.

La chaîne dans le fichier de projet Project1.bpr était comme:

<OBJFILES value="Unit1.obj Types.obj"/>

après modification:

<OBJFILES value="Unit1.obj"/>
1
Rufat

Je pense que vous devriez trouver la chaîne TYPES.OBJ dans tous les fichiers de votre projet, après avoir supprimé cette chaîne des fichiers trouvés. Avant cela, n'oubliez pas de créer un répertoire de projet de sauvegarde.

J'ai eu un problème similaire lorsque j'ai converti un ancien projet de BCB5 en BCB 6. Lorsque j'ai supprimé la chaîne avec le nom de fichier ".obj" du fichier de projet avec l'extension ".bpr", mon problème a été résolu.

La chaîne dans le fichier de projet Project1.bpr était comme: après modification:

1
Halaj Butt

Je suivrais d'abord les conseils donnés par Tim D. Chaque fois que je commence à utiliser une version plus récente d'un compilateur, 90% de l'importation d'anciens projets est dû à moi, y compris les fichiers de code/en-tête/objet et à la création d'une version vierge, puis à la copie par la suite, 99% du temps le corrige.

Après m'être assuré que les données ont été créées fraîchement, puis importé vos anciennes données dessus, je vérifierais les problèmes d'incompatibilité hérités. Vous êtes sur la bonne voie pour changer vos "listes". Je vous recommande également de vous assurer que tout votre code est réécrit pour le nouveau compilateur. Cela aide à la fois à la compatibilité du code et à la rationalisation de l'exécution du projet terminé.

Enfin, je vérifierais que toutes vos données supplémentaires (fichiers qui ne sont pas du code pur tels que les fichiers d'en-tête) sont également reconnaissables par le compilateur actuellement utilisé. (L'héritage peut rendre cela délicat.)

0
Gulp Dragondawn

On dirait que le compilateur obtient TYPES.OBJ mais ne peut pas s'ouvrir comme cela peut se produire en raison de plusieurs facteurs (comme C++ dépend de la plate-forme .. TYPES.cpp peut être construit dans un système d'exploitation différent) Vous pouvez à coup sûr résoudre le problème de ma construction de TYPES .cpp .. Sachez également que les bibliothèques que ce CPP importe doivent être compiables même // Si vous obtenez toujours l'erreur, continuez avec la construction complète .. Ou consultez link.rsp ou utilisez la commande nm pour trouver l'oblect dépendant et construire tout leur.

0
Akshay