Comment utiliser JSON-RPC?
J'ai suivi scrupuleusement cette documentation à installer et à utiliser jsoncpp bibliothèque dans mon projet : jsoncpp README
Mais j'ai toujours ce problème avec ma compilation:
g++ -W -Wall-Werror -c -o src/ModConnection.o src/ModConnection.cpp
src/ModConnection.rpc:15:23: erreur fatale: json/json.h: Aucun fichier ou répertoire
compilation terminée.
C'est arriver quand je suis en train d'utiliser #include <json/json.h>
Voici mon MAKEFILE Linux :
CXX = g++
NAME = bin/server
SRCS = ./src/ModConnection.cpp\
./src/unixNetwork.cpp
OBJS = $(SRCS:.cpp=.o)
CXXFLAGS += -W -Wall -Werror
LDFLAGS = -L ./src/jsoncpp-src-0.5.0/buildscons/linux-gcc4.5.1/src/lib_json/libjson_linux-gcc-4.5.1_libmt.a -I src/jsoncpp-src-0.5.0/include
RM = rm -f
$(NAME) : $(OBJS)
$(CXX) $(LDFLAGS) -o $(NAME) $(OBJS)
all : $(NAME)
clean :
$(RM) $(OBJS)
fclean : clean
$(RM) $(NAME)
re : fclean all
.PHONY : all clean fclean re
Merci pour votre aide.
Le "Bâtiment/Test" (à partir de ce fichier est lié à) vous indique d'utiliser le
python scons.py platform=your-platform-here
à la construction de la bibliothèque, mais vous êtes montrant un Makefile
. Est le script de compilation que vous avez posté votre demande, ou pour le jsoncpp
bibliothèque?
OriginalL'auteur Nizar B. | 2012-03-30
Vous devez vous connecter pour publier un commentaire.
Vous êtes en spécifiant le répertoire pour jsoncpp dans votre
LDFLAGS
variable, mais ceux-ci ne sont pas utilisés jusqu'à ce que vous avez déjà compilé l'individu fichiers cpp. Vous avez besoin de mettre la partie-I src/jsoncpp-src-0.5.0/include
quelque part dans les drapeaux qui sont ajoutés à la compilation des lignes, commeCXXFLAGS
.D'étendre un peu, vous êtes à l'aide implicite des règles pour construire votre
.cpp
fichiers, alors vous avez un objectif précis pour la construction de votre application de ces objets.Voir le GNU Make Catalogue de Règles pour plus d'info, mais celui que vous utilisez est ici:
Modifier: Maintenant, pour votre les erreurs de liaison.
Vous êtes l'obtention de ces problèmes parce que l'éditeur de liens ne pouvez pas trouver les implémentations des fonctions que vous appelez.
Tout d'abord, votre
-L
directive doit pointer vers un dossier, pas une bibliothèque.-L
définit un chemin de recherche pour les bibliothèques. Il devrait être créé dans le dossier contenant la bibliothèque de la jsoncpp construire a été créé. Ensuite, vous devez le lien de la bibliothèque elle-même. Que le nom de la bibliothèque est gigantesque, mais l'ajout de-l json_linux-gcc-4.5.1_libmt
àLDFLAGS
devrait faire l'affaire.-l
(baisse de l'apl) définit une véritable bibliothèque de lien.Salut Collin, j'ai mis l'-j'lignes dans mon CXXFLAGS et voici quelques nouvelles erreurs que j'obtiens : ` ./src/ModConnection.o: Dans la fonction
main': ModConnection.cpp:(.text+0x16): undefined reference to
Json::valeur: Valeur:Valeur(Json::ValueType)' `Maintenant, je n'ai pas d'erreur avec ma compilation depuis que j'ai suivi les conseils de Collins de Hockey, Mais quand je suis en ecrivant cela dans mon programme principal :
Json::Value root;
j'ai toujours cette erreur:ModConnection.cpp:(.text+0x16): undefined reference to
Json::valeur: Valeur:Valeur(Json::ValueType)' ModConnection.cpp:(.texte+0x27): undefined reference toJson::Value::~Value()'
J'ai mis à jour ma réponse avec quelques reliant les correctifs qui devraient vous aller. Je ne peux pas essayer de construction en ce moment parce que mon installer cygwin, c'est horriblement cassé, mais je peux essayer plus tard ce soir, si ça ne fonctionne pas pour vous.
Grâce Collin ! obtenez aucune erreur cette fois, mais je reviens vers vous si je rencontre un autre lié à mon JSONCPP compilation de bibliothèque.
OriginalL'auteur Collin