Articles of linker

Erreur de l’éditeur de liens MinGW: winsock

J’utilise le compilateur MinGW sous Windows pour comstackr mon application C ++ avec des sockets. Ma commande de liaison ressemble à ceci: g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot of object files } et j’ai aussi essayé g++.exe -Wall -Wno-long-long -pedantic -lws2_32 -o dist/Windows/piskvorky { there are a lot of […]

Comment associer GCC sans -l ni chemin de codage pour une bibliothèque qui ne respecte pas la convention de dénomination libNAME.so?

J’ai une bibliothèque partagée que je souhaite relier un exécutable contre l’utilisation de GCC. La bibliothèque partagée a un nom non standard, pas de la forme libNAME.so, donc je ne peux pas utiliser l’option -l habituelle. (Il s’agit également d’une extension Python, et n’a donc pas de préfixe «lib».) Je suis en mesure de transmettre […]

C ++ extern mot sur des fonctions. Pourquoi ne pas simplement inclure le fichier d’en-tête?

Si je le comprends bien, cela signifie extern void foo(); que la fonction foo est déclarée dans une autre unité de traduction. 1) Pourquoi ne pas simplement inclure l’en-tête dans lequel cette fonction est déclarée? 2) Comment l’éditeur de liens sait-il où chercher la fonction au moment de la liaison? edit: Peut-être que je devrais […]

Utiliser à la fois des bibliothèques statiques et des bibliothèques liées dynamicment dans gcc

Je dois dissortingbuer un fichier binary qui fonctionnera sur autant de dissortingbutions Linux x86 que possible. Cela signifie que je dois relier statiquement certaines bibliothèques, comme la glibc, car l’utilisateur n’a peut-être pas la version que j’utilise. D’autres bibliothèques doivent être liées dynamicment, comme fontconfig, car elles reposent sur un format de fichier cache et […]

Limiter la visibilité des symboles lors de la liaison de bibliothèques partagées

Certaines plates-formes vous obligent à fournir une liste des symboles externes d’une bibliothèque partagée à l’éditeur de liens. Cependant, sur la plupart des systèmes Unix, ce n’est pas nécessaire: tous les symboles non statiques seront disponibles par défaut. Je crois comprendre que la chaîne d’outils GNU peut éventuellement restreindre la visibilité aux seuls symboles explicitement […]

Xcode: avertissement: répertoire introuvable pour l’option

Ld /Users/pwang/Library/Developer/Xcode/DerivedData/socketiohldwxnslzhlnjtgihgewdwavpjpb/Build/Products/Debug-iphoneos/socketio.app/socketio normal armv7 cd /Users/pwang/Desktop/saturngod-Socket.io-with-iOS-be51414 setenv IPHONEOS_DEPLOYMENT_TARGET 4.3 setenv PATH “/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin” /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -L/Users/pwang/Library/Developer/Xcode/DerivedData/socketio-hldwxnslzhlnjtgihgewdwavpjpb/Build/Products/Debug-iphoneos -L/Users/pwang/Desktop/saturngod-Socket.io-with-iOS-be51414/socketio/simulator -L/Users/pwang/Desktop/saturngod-Socket.io-with-iOS-be51414/socketio/device -F/Users/pwang/Library/Developer/Xcode/DerivedData/socketio-hldwxnslzhlnjtgihgewdwavpjpb/Build/Products/Debug-iphoneos -F/Users/pwang/Desktop/saturngod-Socket.io-with-iOS-be51414/socketio -filelist /Users/pwang/Library/Developer/Xcode/DerivedData/socketio-hldwxnslzhlnjtgihgewdwavpjpb/Build/Intermediates/socketio.build/Debug-iphoneos/socketio.build/Objects-normal/armv7/socketio.LinkFileList -dead_ssortingp -lz -licucore -miphoneos-version-min=4.3 -framework MobileCoreServices -framework Foundation -lz -lxml2 -framework SystemConfiguration -framework CFNetwork -framework UIKit -framework CoreGraphics -o /Users/pwang/Library/Developer/Xcode/DerivedData/socketio-hldwxnslzhlnjtgihgewdwavpjpb/Build/Products/Debug-iphoneos/socketio.app/socketio ld: warning: directory not found for option ‘-L/Users/pwang/Desktop/saturngod-Socket.io-with-iOS-be51414/socketio/simulator’ ld: warning: directory […]

Faire de petits exécutables haskell?

Existe-t-il de bons moyens pour créer de petits exécutables haskell? Avec ghc6, un simple programme hello world semble atteindre environ 370kB (523kB avant ssortingp). Bonjour tout le monde en C est d’environ 4 Ko (9 Ko avant le ssortingp).

Comment définir le chemin d’exécution (-rpath) d’un exécutable avec gcc sous Mac OSX?

Je veux définir sous Mac OSX le chemin d’exécution d’un exécutable (pour l’éditeur de liens) au moment de la compilation, de sorte que l’éditeur de liens dynamics trouve les bibliothèques partagées à des emplacements non standard au démarrage du programme. Sous Linux, cela est possible avec -Xlinker -rpath -Xlinker /path/to (ou en utilisant -Wl,-rpath,/path/to ) […]

Le lieur peut-il fonctionner en ligne?

Dans le fichier file1.c , il y a un appel à une fonction implémentée dans le fichier file2.c . Lorsque je lie file1.o et file2.o dans un exécutable, si la fonction dans file2 est très petite, l’éditeur de liens détectera-t-il automatiquement que la fonction est petite et intègre son appel?

Les binarys compilés par ghc requièrent-ils GHC ou sont-ils autonomes?

Si un ami veut lancer mes binarys Haskell, doit-il d’abord installer Haskell, ou peut-il lancer le binary immédiatement? La réponse est-elle la même sur Mac, Windows et Linux?