Compilation avec Code::Blocks sous Linux (Ubuntu)
Bonjour.
Il y a environ 3 ans, je me rappelle que j'avais pas mal galéré pour bien configurer Qt + Codeblocks + Windows (pas pour compiler un bouton tout bête, mais dès qu'on définit un Q_OBJECT ça devient plus compliqué).
Aujourd'hui, je dois m'attaquer à la configuration sous Linux (Ubuntu), et bien sûr, ça bug pour le moment.
Ce que j'ai fait :
Qt est installé dans : J'ai ajouté à ~/.profile (sinon j'avais des bugs) :
Citation:
export QTDIR=/0/qt4
export QMAKESPEC=/0/qt4/mkspecs/linux-g++-32
Sous Codeblocks, j'ai créé trois outils :
1) Quelque chose qui m'exécute :
Citation:
/0/qt4/bin/qmake
-project
Répertoire de travail : $(PROJECT_DIR)
Cela me produit mon .pro
2) Quelque chose qui m'exécute :
Citation:
/0/qt4/bin/qmake
Répertoire de travail : $(PROJECT_DIR)
Cela devrait me produire mon makefile
Suite à cela j'obtiens un .pro :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| ######################################################################
# Automatically generated by qmake (2.01a) lun. mars 14 17:37:15 2011
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
# Input
HEADERS += gmainwindow.h main.h
SOURCES += gmainwindow.cpp main.cpp |
Et mon makefile :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
| #############################################################################
# Makefile for building: sourceformat
# Generated by qmake (2.01a) (Qt 4.7.2) on: lun. mars 14 17:37:17 2011
# Project: sourceformat.pro
# Template: app
# Command: /0/qt4/bin/qmake -o Makefile sourceformat.pro
#############################################################################
####### Compiler, tools and options
CC = gcc
CXX = g++
DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
CFLAGS = -m32 -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -m32 -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
INCPATH = -I/0/qt4/mkspecs/linux-g++-32 -I. -I/usr/local/Trolltech/Qt-4.7.2/include/QtCore -I/usr/local/Trolltech/Qt-4.7.2/include/QtGui -I/usr/local/Trolltech/Qt-4.7.2/include -I. -I.
LINK = g++
LFLAGS = -m32 -Wl,-O1
LIBS = $(SUBLIBS) -L/usr/local/Trolltech/Qt-4.7.2/lib -lQtGui -lQtCore -lpthread
AR = ar cqs
RANLIB =
QMAKE = /0/qt4/bin/qmake
TAR = tar -cf
COMPRESS = gzip -9f
COPY = cp -f
SED = sed
COPY_FILE = $(COPY)
COPY_DIR = $(COPY) -r
STRIP = strip
INSTALL_FILE = install -m 644 -p
INSTALL_DIR = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE = rm -f
SYMLINK = ln -f -s
DEL_DIR = rmdir
MOVE = mv -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p
####### Output directory
OBJECTS_DIR = ./
####### Files
SOURCES = gmainwindow.cpp \
main.cpp moc_gmainwindow.cpp
OBJECTS = gmainwindow.o \
main.o \
moc_gmainwindow.o
DIST = /0/qt4/mkspecs/common/g++.conf \
/0/qt4/mkspecs/common/unix.conf \
/0/qt4/mkspecs/common/linux.conf \
/0/qt4/mkspecs/features/qt_functions.prf \
/0/qt4/mkspecs/features/qt_config.prf \
/0/qt4/mkspecs/features/exclusive_builds.prf \
/0/qt4/mkspecs/features/default_pre.prf \
/0/qt4/mkspecs/features/release.prf \
/0/qt4/mkspecs/features/default_post.prf \
/0/qt4/mkspecs/features/warn_on.prf \
/0/qt4/mkspecs/features/qt.prf \
/0/qt4/mkspecs/features/unix/thread.prf \
/0/qt4/mkspecs/features/moc.prf \
/0/qt4/mkspecs/features/resources.prf \
/0/qt4/mkspecs/features/uic.prf \
/0/qt4/mkspecs/features/yacc.prf \
/0/qt4/mkspecs/features/lex.prf \
/0/qt4/mkspecs/features/include_source_dir.prf \
sourceformat.pro
QMAKE_TARGET = sourceformat
DESTDIR =
TARGET = sourceformat
first: all
####### Implicit rules
.SUFFIXES: .o .c .cpp .cc .cxx .C
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
####### Build rules
all: Makefile $(TARGET)
$(TARGET): $(OBJECTS)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
Makefile: sourceformat.pro /0/qt4/mkspecs/linux-g++-32/qmake.conf /0/qt4/mkspecs/common/g++.conf \
/0/qt4/mkspecs/common/unix.conf \
/0/qt4/mkspecs/common/linux.conf \
/0/qt4/mkspecs/features/qt_functions.prf \
/0/qt4/mkspecs/features/qt_config.prf \
/0/qt4/mkspecs/features/exclusive_builds.prf \
/0/qt4/mkspecs/features/default_pre.prf \
/0/qt4/mkspecs/features/release.prf \
/0/qt4/mkspecs/features/default_post.prf \
/0/qt4/mkspecs/features/warn_on.prf \
/0/qt4/mkspecs/features/qt.prf \
/0/qt4/mkspecs/features/unix/thread.prf \
/0/qt4/mkspecs/features/moc.prf \
/0/qt4/mkspecs/features/resources.prf \
/0/qt4/mkspecs/features/uic.prf \
/0/qt4/mkspecs/features/yacc.prf \
/0/qt4/mkspecs/features/lex.prf \
/0/qt4/mkspecs/features/include_source_dir.prf
$(QMAKE) -o Makefile sourceformat.pro
/0/qt4/mkspecs/common/g++.conf:
/0/qt4/mkspecs/common/unix.conf:
/0/qt4/mkspecs/common/linux.conf:
/0/qt4/mkspecs/features/qt_functions.prf:
/0/qt4/mkspecs/features/qt_config.prf:
/0/qt4/mkspecs/features/exclusive_builds.prf:
/0/qt4/mkspecs/features/default_pre.prf:
/0/qt4/mkspecs/features/release.prf:
/0/qt4/mkspecs/features/default_post.prf:
/0/qt4/mkspecs/features/warn_on.prf:
/0/qt4/mkspecs/features/qt.prf:
/0/qt4/mkspecs/features/unix/thread.prf:
/0/qt4/mkspecs/features/moc.prf:
/0/qt4/mkspecs/features/resources.prf:
/0/qt4/mkspecs/features/uic.prf:
/0/qt4/mkspecs/features/yacc.prf:
/0/qt4/mkspecs/features/lex.prf:
/0/qt4/mkspecs/features/include_source_dir.prf:
qmake: FORCE
@$(QMAKE) -o Makefile sourceformat.pro
dist:
@$(CHK_DIR_EXISTS) .tmp/sourceformat1.0.0 || $(MKDIR) .tmp/sourceformat1.0.0
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/sourceformat1.0.0/ && $(COPY_FILE) --parents gmainwindow.h main.h .tmp/sourceformat1.0.0/ && $(COPY_FILE) --parents gmainwindow.cpp main.cpp .tmp/sourceformat1.0.0/ && (cd `dirname .tmp/sourceformat1.0.0` && $(TAR) sourceformat1.0.0.tar sourceformat1.0.0 && $(COMPRESS) sourceformat1.0.0.tar) && $(MOVE) `dirname .tmp/sourceformat1.0.0`/sourceformat1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/sourceformat1.0.0
clean:compiler_clean
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core
####### Sub-libraries
distclean: clean
-$(DEL_FILE) $(TARGET)
-$(DEL_FILE) Makefile
check: first
/usr/local/Trolltech/Qt-4.7.2/bin/moc:
(cd $(QTDIR)/src/tools/moc && $(MAKE))
mocclean: compiler_moc_header_clean compiler_moc_source_clean
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
compiler_moc_header_make_all: moc_gmainwindow.cpp
compiler_moc_header_clean:
-$(DEL_FILE) moc_gmainwindow.cpp
moc_gmainwindow.cpp: gmainwindow.h \
/usr/local/Trolltech/Qt-4.7.2/bin/moc
/usr/local/Trolltech/Qt-4.7.2/bin/moc $(DEFINES) $(INCPATH) gmainwindow.h -o moc_gmainwindow.cpp
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_moc_header_clean
####### Compile
gmainwindow.o: gmainwindow.cpp gmainwindow.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o gmainwindow.o gmainwindow.cpp
main.o: main.cpp main.h \
gmainwindow.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
moc_gmainwindow.o: moc_gmainwindow.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_gmainwindow.o moc_gmainwindow.cpp
####### Install
install: FORCE
uninstall: FORCE
FORCE: |
(alors que sous Windows, j'ai un Makefile, un Makefile.Release et un Makefile.Debug, là je n'ai qu'un Makefile).
Et finalement, quand j'essaye de compiler sous Codeblocks, j'obtiens le message :
Citation:
-------------- Générer: Release in sourceformat ---------------
Using makefile: Makefile
make: *** Pas de règle pour fabriquer la cible « Release ». Arrêt.
Le processus s'est terminé avec le statut 2 (0 minutes, 0 secondes)
0 erreurs, 0 avertissements
Avez vous une idée d'où pourrait venir le problème ?
Que pourrais-je essayer de faire pour y voir plus clair ?
Merci beaucoup ;)
comilation relase et debug
bonjour,
je ne suis pas sur mais essai d'ajouter les lignes dans ton fichier pro
######################################################################
# Automatically generated by qmake (2.01a) lun. mars 14 17:37:15 2011
######################################################################
TEMPLATE = app
TARGET = "nom te ton fichier binaire "
DEPENDPATH += .
INCLUDEPATH += .
# Input
HEADERS += gmainwindow.h main.h
SOURCES += gmainwindow.cpp main.cpp
#----------------------
#indiquer les endroits ou vous voulez maitre les sortie a votre choix
CONFIG += qt \
release #en relase
OBJECTS_DIR = build #dossier des ficher *.o etc...
MOC_DIR = build
UI_DIR = build
DESTDIR = bin #sortie de fichier binaire si vous voulez
wn32{
# fichier Release
Release:DESTDIR = release #
Release:OBJECTS_DIR = release/.obj
Release:MOC_DIR = release/.moc
Release:RCC_DIR = release/.rcc
Release:UI_DIR = release/.ui
#debug fichier volumineux
Debug:DESTDIR = debug
Debug:OBJECTS_DIR = debug/.obj
Debug:MOC_DIR = debug/.moc
Debug:RCC_DIR = debug/.rcc
Debug:UI_DIR = debug/.ui
}
:ccool:
voire aussi
http://stackoverflow.com/questions/2...qmake-pro-file