Bug 53528

Summary: error in Makefiles generation prevents compilation (linking phase)
Product: [Applications] kdevelop Reporter: Arnaud Arzuffi <arzuffi.arnaud>
Component: kdevelop 2.x (obsolete)Assignee: KDevelop-Devel List <kdevelop-devel>
Status: RESOLVED INTENTIONAL    
Severity: normal    
Priority: NOR    
Version: 2.1.3   
Target Milestone: ---   
Platform: Mandrake RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description Arnaud Arzuffi 2003-01-28 18:27:09 UTC
Version:           2.1.3 (using KDE KDE 3.0.5)
Installed from:    Mandrake RPMs
Compiler:          gcc 3.2 
OS:          Linux

The compilation phase causes no problems ; however, the linking phase produces an error.

directory structure (sources files) :

amloghuis/amloghuis/srcs/kernel/kernelamloghuis.cpp
amloghuis/amloghuis/srcs/kernel/kernelamloghuis.h
amloghuis/amloghuis/srcs/document/documentamloghuis.cpp
amloghuis/amloghuis/srcs/document/documentamloghuis.h
amloghuis/amloghuis/srcs/document/manager/managerdocumentamloghuis.cpp
amloghuis/amloghuis/srcs/document/manager/managerdocumentamloghuis.h
amloghuis/amloghuis/srcs/document/displayer/displayerdocumentamloghuis.cpp
amloghuis/amloghuis/srcs/document/displayer/displayerdocumentamloghuis.h
amloghuis/amloghuis/srcs/document/modifier/modifierdocumentamloghuis.cpp
amloghuis/amloghuis/srcs/document/modifier/modifierdocumentamloghuis.h
amloghuis/amloghuis/srcs/document/contents/informationsgeneral/informationsgeneral.cpp
amloghuis/amloghuis/srcs/document/contents/informationsgeneral/informationsgeneral.h
amloghuis/amloghuis/srcs/document/contents/personcontrolling/personcontrolling.cpp
amloghuis/amloghuis/srcs/document/contents/personcontrolling/personcontrolling.h
amloghuis/amloghuis/srcs/document/contents/persondiscussing/persondiscussing.cpp
amloghuis/amloghuis/srcs/document/contents/persondiscussing/persondiscussing.h
amloghuis/amloghuis/srcs/document/contents/informationschannel/informationschannel.cpp
amloghuis/amloghuis/srcs/document/contents/informationschannel/informationschannel.h
amloghuis/amloghuis/srcs/document/contents/discussionchannel/discussionchannel.cpp
amloghuis/amloghuis/srcs/document/contents/discussionchannel/discussionchannel.h
amloghuis/amloghuis/srcs/document/contents/discussionprivate/discussionprivate.cpp
amloghuis/amloghuis/srcs/document/contents/discussionprivate/discussionprivate.h
amloghuis/amloghuis/srcs/document/contents/messagediscussion/messagediscussion.cpp
amloghuis/amloghuis/srcs/document/contents/messagediscussion/messagediscussion.h
amloghuis/amloghuis/srcs/document/facilities/commandprotocol/commandprotocol.cpp
amloghuis/amloghuis/srcs/document/facilities/commandprotocol/commandprotocol.h
amloghuis/amloghuis/srcs/document/facilities/communicationsmanagement/communicationsmanagement.cpp
amloghuis/amloghuis/srcs/document/facilities/communicationsmanagement/communicationsmanagement.h
amloghuis/amloghuis/srcs/document/facilities/transmissioncommandsprotocol/transmissioncommandsprotocol.cpp
amloghuis/amloghuis/srcs/document/facilities/transmissioncommandsprotocol/transmissioncommandsprotocol.h
amloghuis/amloghuis/srcs/document/facilities/receptioncommandsprotocol/receptioncommandsprotocol.cpp
amloghuis/amloghuis/srcs/document/facilities/receptioncommandsprotocol/receptioncommandsprotocol.h
amloghuis/amloghuis/srcs/document/facilities/temporaryvariables/temporaryvariables.cpp
amloghuis/amloghuis/srcs/document/facilities/temporaryvariables/temporaryvariables.h
amloghuis/amloghuis/srcs/document/facilities/conversionvariables/conversionvariables.cpp
amloghuis/amloghuis/srcs/document/facilities/conversionvariables/conversionvariables.h
amloghuis/amloghuis/srcs/controller/controlleramloghuis.cpp
amloghuis/amloghuis/srcs/controller/controlleramloghuis.h
amloghuis/amloghuis/srcs/widget/widgetamloghuis.cpp
amloghuis/amloghuis/srcs/widget/widgetamloghuis.cpp
amloghuis/amloghuis/srcs/exception/exceptionamloghuis.cpp
amloghuis/amloghuis/srcs/exception/exceptionamloghuis.cpp


Linking command invoked :

L/usr/X11R6/lib   ./controller/libcontroller.a ./document/libdocument.a ./document/modifier/libmodifier.a ./document/manager/libmanager.a ./document/displayer/libdisplayer.a ./document/facilities/libfacilities.a ./document/facilities/commandprotocol/libcommandprotocol.a ./document/facilities/conversionvariables/libconversionvariables.a ./document/facilities/managementcommunications/libmanagementcommunications.a ./document/facilities/receptioncommandsprotocol/libreceptioncommandsprotocol.a ./document/facilities/temporaryvariables/libtemporaryvariables.a ./document/facilities/transmissioncommandsprotocol/libtransmissioncommandsprotocol.a ./document/contents/discussionchannel/libdiscussionchannel.a ./document/contents/discussionprivate/libdiscussionprivate.a ./document/contents/informationsgeneral/libinformationsgeneral.a ./document/contents/messagediscussion/libmessagediscussion.a ./document/contents/personcontrolling/libpersoncontrolling.a ./document/contents/persondiscussing/libpersondiscussing.a ./exception/libexception.a ./kernel/libkernel.a ./widget/libwidget.a  -lqt -lpng -lz -lm -ljpeg -lXext -lX11 -lresolv -lSM -lICE -lresolv 


Error message :

make: L/usr/X11R6/lib : Commande introuvable
("commande introuvable" is the french translation of "command not found")


Possible explanation : the root of source files (amloghuis/amloghuis/srcs) contains no source file ; indeed, if I add an even empty "main.cpp" in this directory, there is no error anymore and the program is compiled. This problem of an directory without source files seems to appear only when such a directory is the root directory of the source files. Indeed, the "amloghuis/amloghuis/srcs/document/contents" directory in my project also doesn't contain any source file and it causes no problem.


Correction attempt :

Adding the following commands :

CXXFLAGS = -O2 -O0 -g3 -Wall -fno-exceptions -fno-check-new -fexceptions
#>- CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
#>+ 1
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
#>- LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
#>+ 1
LTCXXCOMPILE = $(LIBTOOL) --mode=compile --tag=CXX $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
CXXLD = $(CXX)
#>- CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
#>+ 1
CXXLINK = $(LIBTOOL) --mode=link --tag=CXX $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(LDFLAGS) -o $@

in the file "amloghuis/amloghuis/Makefile", and replacing the command :

amloghuis$(EXEEXT): $(amloghuis_OBJECTS) $(amloghuis_DEPENDENCIES)
	@rm -f amloghuis$(EXEEXT)
	$(LINK) $(amloghuis_LDFLAGS) $(amloghuis_OBJECTS) $(amloghuis_LDADD) $(LIBS)

by the command :

amloghuis$(EXEEXT): $(amloghuis_OBJECTS) $(amloghuis_DEPENDENCIES)
	@rm -f amloghuis$(EXEEXT)
	$(CXXLINK) $(amloghuis_LDFLAGS) $(amloghuis_OBJECTS) $(amloghuis_LDADD) $(LIBS)

in the file "amloghuis/amloghuis/Makefile", enables the linking phase to complete without errors and the executable is produced.

Hoping that will help... to correct this problem :)
Comment 1 Amilcar do Carmo Lucas 2003-05-14 12:06:38 UTC
This is handeled in a diferent way in KDevelop 3.0 
 
Please update and test again! 
 
Closing this report