Question

J'ai commencé à utiliser vérifier cadre pour les essais C application.Pour mieux comprendre, je suis allé à travers l'exemple de la vérification de l'emballage.Il fonctionne très bien, mais je n'ai pas besoin automake outils - je veux compiler mon propre Makefile (car je veux comprendre le vérifier correctement et j'ai besoin d'utiliser mon application finale, comme un paquet d'un OS).Peut-être que je pourrais l'utiliser il y a le Makefile généré automatiquement, mais pour l'instant, il serait à côté d'une nouvelle chose que j'ai à apprendre et j'ai peu de temps pour la préparation des tests unitaires.(Puis, bien sûr, je veux étudier et de comprendre les outils pour générer des Makfile, à l'aide de configurer, etc.)

Il y a un problème dans la construction de l'application avec mon Makefile, que je n'ai pas liée à l'objet pour vérifier la fonctionnalité:

/tmp/ccm7cniy.o: In function `test_money_create':
check_money.c:(.text+0x1e): undefined reference to `tcase_fn_start'
check_money.c:(.text+0x79): undefined reference to `_fail_unless'
check_money.c:(.text+0xcc): undefined reference to `_fail_unless'

J'ai découvert que dans l'exemple d'application est la gcc avec obj.fichier check_money-check_money.o, qui a été créé par gcc:

gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT check_money-check_money.o -MD -MP -MF .deps/check_money-check_money.Tpo -c -o check_money-check_money.o `test -f'check_money.c' || echo './'`check_money.c

Et voici mon problème:il utilise la dépendance check_money-check_money.Tpo.Ce fichier a été générer par la commande ./configure, je n'utilise pas.

Comment puis-je créer mon propre .o fichier pour vérifier pour construire avec succès?Il est nécessaire de créer ce fichier pour chaque application?Peut-être pas un, quelque part dans les bibliothèques partagées?

(Je suis désolé si ma question est "stupide", j'ai des petits de l'expérience par la création d'applications sous linux encore)

Était-ce utile?

La solution

L'ajout de commentaire comme réponse:
Veuillez vérifier si vous avez installé check cadre.Si oui, vous pouvez essayer de l'utiliser pkg-config dire

gcc check_money.c `pkg-config --cflags --libs check`

Ici pkg-config l'utilitaire de lire les .pc fichier (qui se trouve être check.pc en cas de check cadre, et donc la dernière entrée dans la commande dit check) & ajoutez les drapeaux du compilateur (--cflags option) & bibliothèques/options du linker (--libs option)

Espérons que cette aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top