J'ai une bibliothèque statique que j'ai compilée avec gcc sans le mode c99. J'essaie de le lier en compilation en utilisant gcc -std = c99. Cela me donne une erreur:Liaison d'une bibliothèque statique autre que C99 en mode C99
undefined reference to 'functionName'
Ici, functionName est fonction dans la bibliothèque statique.
C'est ma compilation:
gcc -std=c99 -g -I../ -Llib/ -lmylib test.c ../file1.c ../file2.c -o test
J'utilise C99 ici parce que mon code dans #includes de Test.c fichiers en-tête dont la mise en œuvre utilise la norme C99. La bibliothèque statique (lib/libmylib.a) n'est pas compilée avec la norme c99 car son code utilise certaines bibliothèques qui ne parviennent pas à compiler en mode C99 (mais compile sans l'indicateur c99).
J'ai également essayé de changer l'ordre des -L & -l drapeaux à la fin & immédiatement après gcc -std = c99 mais il a donné la même erreur 'référence non définie'.
Comment les relier ensemble?
Merci.
EDIT: La fonction que je l'ai mentionné comme functionName
est un pseudonyme montré ici setupStacktrace(): http://pastebin.com/2RbEEPaj. C'est la signature est void setupStacktrace();
Etes-vous certain que 'functionName' est défini dans l'un des fichiers/bibliothèques source, et qu'il n'est pas défini' inline'? – Casey
Bibliothèques après les fichiers objets! Essayez: 'gcc -std = c99 -g -I ../ -Llib/test.c ../fichier1.c ../fichier2.c -lmylib -o test' –
@Casey que' nomFonction' est à l'intérieur de la statique bibliothèque. Éditera la question pour ajouter de la clarté. – Bharat