编译QT/E应用程序时发生的多重定义问题和解决方法
在Linux系统下Make一个QT/E的应用程序时,发生了多重定义的问题,情况如下。
[root@localhost cam]# make
Makefile:
135
: warning: overriding commands
for
target `moc_camgui.cpp
'
Makefile:
132
: warning: ignoring old commands
for
target `moc_camgui.cpp
'
g
++
-
o camgui camgui.o main.o camgui.o moc_camgui.o moc_camgui.o
-
L
/
root
/
qte
/
qt
-
2.3
.
10
/
lib
-
lm
-
lqte
camgui.o(.bss
+
0x47a0
): multiple definition of `dquant
'
camgui.o(.bss
+
0x47a0
): first defined here
camgui.o(.text
+
0x5e1c
): In function `MainForm::MainForm[not
-
in
-
charge](QWidget
*
,
char
const
*
, unsigned)
'
:
: multiple definition of `MainForm::MainForm[not
-
in
-
charge](QWidget
*
,
char
const
*
, unsigned)
'
camgui.o(.text
+
0x5e1c
): first defined here
camgui.o(.text
+
0x67e4
): In function `MainForm::MainForm[
in
-
charge](QWidget
*
,
char
const
*
, unsigned)
'
:
: multiple definition of `MainForm::MainForm[
in
-
charge](QWidget
*
,
char
const
*
, unsigned)

在Linux环境下编译QT/E应用时遇到多重定义问题,检查源码和环境变量未发现错误。问题根源在于自动化工具生成的Makefile,通过调整Makefile解决了问题。
最低0.47元/天 解锁文章
2198





