Le problème: Pour le moment, je compile sur Ubuntu mais mon serveur exécute Fedora/Redhat. Ubunutu utilise boost 1.42 et linux dernier en ce moment même est 1.41. Alors, que j'ai décidé était de télécharger le répertoire lib boost et le mettre dans le dossier de mon espace de travail#include boost sans utiliser libs linux
Voici la structure de répertoire
/workspace
/myprogram
/src
/main.cpp
/Debug
/main
/boost_1_42_0
/downloaded from boost.com
Dans mon main.cpp, j'ai ce code
#include "../../boost_1_42_0/boost/regex.hpp"
Est-ce que c'est même posible ou suis-je aboyer le mauvais arbre. J'ai essayé de le compiler, mais il a échoué (ofcourse) avec 13 erreurs
Si j'ai raté quelques informations s'il vous plaît demander, il essayer fournissant
Créer un fichier (Mon programme est appelé vlogd)
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include ../makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include src/subdir.mk
-include src/class/vException/subdir.mk
-include src/class/mysqlcppapi/subdir.mk
-include src/class/mysqlcppapi/row/subdir.mk
-include src/class/mysqlcppapi/query_results/subdir.mk
-include src/class/mysqlcppapi/query/subdir.mk
-include src/class/mysqlcppapi/fields/subdir.mk
-include src/class/mysqlcppapi/exceptions/subdir.mk
-include src/class/mysqlcppapi/datetime/subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
endif
-include ../makefile.defs
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: vlogd
# Tool invocations
vlogd: $(OBJS) $(USER_OBJS)
@echo 'Building target: [email protected]'
@echo 'Invoking: GCC C++ Linker'
g++ -L/usr/lib64/mysql -L../../boost_1_42_0/lib/ -o"vlogd" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: [email protected]'
@echo ' '
# Other Targets
clean:
-$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) vlogd
[email protected] ' '
.PHONY: all clean dependents
.SECONDARY:
-include ../makefile.targets
objet fichier
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
USER_OBJS :=
LIBS := -lmysqlclient -lboost_regex
Est-ce que je dois aussi copier les fichiers de boost sur mon serveur de travail. Ou seront-ils compilés dans mon programme? –
en utilisant g ++, Dois-je copier et coller le makefile eclipse fait pour moi –
La plupart des bibliothèques Boost sont en-têtes seulement. En tant que tels, ils seront compilés dans votre programme, il n'est donc pas nécessaire de copier les fichiers Boost sur la machine cible. – CadentOrange