-------------------------------------------------- ------------------------------
salut! désolé pour la longueur de ce post.
im en utilisant KDevelop 3.3.1 sur Ferdora Core 5
je créer un projet avec C Automanke Manager, ajouter main.c, LibBkTrans.h en elle.
/ / main.c
#include "BkTransLib.h"
int main () (
if (BKInit ())
(
/ / ne rien faire
)
)
/ / BkTransLib.h
int BKInit ();
une bibliothèque partagée libbktrans.so.0. 0 contient l'application de BKInit (), j'ai mis dans / usr / local / lib et de l'installer correctement
i construire le projet -> erreur: "undefined référence à BKInit (), de son car je n'ai pas lié à la bibliothèque partagée
j'ai donc un clic-droit sur le nom du projet (Programme de bin) dans la fenêtre Gestionnaire Automake, choisissez Options, dans l'onglet Bibliothèques ajouter i
-lbktrans dans la case "Lien de bibliothèques à l'extérieur du projet (LDADD)"
enfin i rebuid le projet -> Success
maintenant i supprimer le fichier / path_to_project / src / Makefile.in et l'ensemble du répertoire / path_to_project / debug
puis-je supprimer le main.c dans le cadre du projet, allez à / path_to_project / src et renommez main.c à main.cpp, pas de problème, la cause main.c est très simple, comme ci-dessus.
i ajouter ce main.cpp dans le projet et rebuid -> erreur: "undefined référence à BKInit ()"
Je ne sais pas pourquoi.
i essayer une autre approche: créer un projet C + +, ajouter main.ccp et BkTransLib. h, il en
construire -> erreur: "undefined référence à BKInit ()"
i lien de la bibliothèque en ajoutant-lbktrans dans la case "Lien bibliothèques en dehors du projet (LDADD)"
reconstruire -> erreur: "undefined référence à BKInit ()».
peut-être, la bibliothèque partagée ne peut pas dans un lien de projet C + +. (ce qui est de mon idée stupide!)
parce que j'ai réussi à l'encontre d'un simple lien de bibliothèque partagée à la fois C et C + + projet.
est-ce que quelqu'un a une meilleure idée?
Observe
nhatkhang