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 :
/0/qt4
J'ai ajouté à ~/.profile (sinon j'avais des bugs) :
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 :
/0/qt4/bin/qmake
-project
Répertoire de travail : $(PROJECT_DIR)
Cela me produit mon .pro

2) Quelque chose qui m'exécute :
/0/qt4/bin/qmake
Répertoire de travail : $(PROJECT_DIR)
Cela devrait me produire mon makefile

Suite à cela j'obtiens un .pro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
-------------- 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