makefile problem

General questions regarding the usage of CodeLite
Denzelii
CodeLite Curious
Posts: 5
Joined: Tue Feb 28, 2012 3:18 pm
Genuine User: Yes
IDE Question: C++
Contact:

makefile problem

Post by Denzelii »

I'm using (try to use) v3.5.5377 on Windows 7 HUN.

Codelite is installed to c:\codelite, mingw installed c:\codelite\mingw-4.6.1. Path is containing c:\codelite;c:\codelite\mingw-4.6.1\bin. (makedir is working).

When I try to compile my project, I got:

----------Building project:[ test1 - Debug ]----------
mingw32-make.exe[1]: Entering directory `D:/Dokumentumok/codelite/hworld/test1'
gcc -o ./Debug/test1 @"D:\Dokumentumok\codelite\hworld\test1\test1.txt" -L.
gcc: error: ECHO: No such file or directory
gcc: error: kikapcsolva: No such file or directory
gcc: fatal error: no input files
compilation terminated.
mingw32-make.exe[1]: *** [Debug/test1] Error 1

ECHO kikapcsolva means: echo turned off.

When I compiling this simple project on windows xp sp3 everything working fine.

The problem is here:
...
ObjectsFileList :="D:\Dokumentumok\codelite\hworld\test1\test1.txt"
...

Objects=$(IntermediateDirectory)/hworldApp$(ObjectSuffix) $(IntermediateDirectory)/hworldMain$(ObjectSuffix)
...

$(OutputFile): $(IntermediateDirectory)/.d $(Objects)
@$(MakeDirCommand) $(@D)
@echo "" > $(IntermediateDirectory)/.d <== it is running fine, Debug/.d is containing ""
@echo $(Objects) > $(ObjectsFileList) <== it is generating test1.txt, with wrong content
$(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)

test1.txt content: ECHO kikapcsolva

echo $(Objects) printing: Objects=./Debug/hworldApp.o ./Debug/hworldMain.o
echo $(Objects) > test1.txt generating the same wrong txt.

Where is the problem? MS changed the echo command?
frank_frl
CodeLite Expert
Posts: 176
Joined: Sun Aug 17, 2008 2:45 pm
Contact:

Re: makefile problem

Post by frank_frl »

Hi Denzelii,

as a workaround you can switch 'Pass object list to the linker via file' off in 'Build settings/Compilers/gnu gcc/Advanced' and see if it builds. Same for g++

Regards

Frank
Denzelii
CodeLite Curious
Posts: 5
Joined: Tue Feb 28, 2012 3:18 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by Denzelii »

Thanks, but it is not working.

It was already checked. I tried both checked and unchecked state, and build was failed.

The error if unchecked:
----------Building project:[ test1 - Debug ]----------
mingw32-make.exe[1]: Entering directory `D:/Dokumentumok/codelite/hworld/test1'
gcc -o ./Debug/test1 -L.
gcc: fatal error: no input files
compilation terminated.
mingw32-make.exe[1]: *** [Debug/test1] Error 1
mingw32-make.exe: *** [All] Error 2
mingw32-make.exe[1]: Leaving directory `D:/Dokumentumok/codelite/hworld/test1'

The test1.txt is containing "ECHO kikapcsolva".
User avatar
eranif
CodeLite Plugin
Posts: 6375
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by eranif »

Path is containing c:\codelite;c:\codelite\mingw-4.6.1\bin. (makedir is working).
The fact that you mentioned that, makes me wonder if you modified the PATH variable from within codelite?

To make sure its not a configuration problem:
- Close codelite
- Rename %appdata%\CodeLite to something else (e.g. %appdata%\CodeLite.1)
- Start codelite and try to build your project

If you are still facing problems, please zip and attach the workspace here ( you can delete the .tags file to reduce the zip size )

Eran
Make sure you have read the HOW TO POST thread
Denzelii
CodeLite Curious
Posts: 5
Joined: Tue Feb 28, 2012 3:18 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by Denzelii »

Thanks!

It's solved my basic problem. And you right, I forgot (I don't know where to have to do) to modify a PATH variable within Settings/Build Settings/gnu gcc/Tools/PATH enviroment.

Now I tried to compile a wxwidget project. I set WXCFG and WXWIN in the Settings/Environment Variables. (And I already set in thi windows enviroment variables). But the builder is not finding it:

----------Building project:[ wx1 - Debug ]----------

Please use the --wxcfg flag (as in wx-config --wxcfg=gcc_dll\mswud)
or set the environment variable WXCFG (as in WXCFG=gcc_dll\mswud)
to specify which configuration exactly you want to use.

Please use the --wxcfg flag (as in wx-config --wxcfg=gcc_dll\mswud)
or set the environment variable WXCFG (as in WXCFG=gcc_dll\mswud)
to specify which configuration exactly you want to use.

Please use the --wxcfg flag (as in wx-config --wxcfg=gcc_dll\mswud)
or set the environment variable WXCFG (as in WXCFG=gcc_dll\mswud)
to specify which configuration exactly you want to use.
mingw32-make.exe[1]: Entering directory `D:/Dokumentumok/codelite/wp/workspace/wx1'
gcc -o ./Debug/wx1 @"D:\Dokumentumok\codelite\wp\workspace\wx1\wx1.txt" -Lc:/CodeLite/MinGW-4.6.1/lib -L. -lwxmsw28ud -lwxpngd -lwxjpegd -lwxtiffd -lwxzlibd -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -mwindows wx-config Error: No valid setup.h of wxWidgets has been found at location: c:\CodeLite\wxWidgets-2.8.12\lib\lib\gcc_lib\mswud\wx\setup.h
gcc: error: wx-config: No such file or directory..

If I trying to build it from the command line wx-config finding the WXWIN and the WXCFG variables. Where I have to set those values?
(and I already set it within the wx Project Settings/Common Settings/Environment Additional environment variables)
User avatar
eranif
CodeLite Plugin
Posts: 6375
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by eranif »

It seems that you are trying to build wx-widgets application in debug mode, but you dont have wxWidgets built in debug mode installed on your machine.

You could try and install codelite with mingw+wxwidgets from the binaries that I release here:

http://sourceforge.net/projects/codelit ... e/download
If you will accept the default paths it will save you alot of problems - it will simply compile ...without any problems

This package include MinGW 4.6.1 + WinAPI + wxWidgets 2.9.2 built in debug mode / release mode (monolithic DLL)

Eran
Make sure you have read the HOW TO POST thread
Denzelii
CodeLite Curious
Posts: 5
Joined: Tue Feb 28, 2012 3:18 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by Denzelii »

Thanks Eran!

But I have wx-widget (built in debug mode) on my computer.

What I trying to do: I want to setup my environment based on this: http://codelite.org/WxWidgets/GettingRe ... derWindows (Do-It-Yourself-Way).

(When I downloaded codelite with wx-widget is working like a charm.)

Here's my steps:

1, Downloading Codelite width mingw, and installing this.

2, Downloading wx-widget, unzip, mingw32-make -f makefile.gcc clean

3, Compile wxwidget: mingw32-make -f makefile.gcc UNICODE=1 SHARED=0 MONOLITHIC=1 BUILD=debug

4, Adding environment variables to Settings > Environment Variables. (Actually I added these:
WXWIN=C:\CodeLite\wxWidgets-2.9.2
PATH=$(WXWIN)\lib\gcc_dll;$(PATH)
WXCFG=gcc_dll\mswu
because codelite width wxwidget used this.)

But when I try to compile, I'm getting:
Please use the --prefix flag (as in wx-config --prefix=C:\wxWidgets)
or set the environment variable WXWIN (as in WXWIN=C:\wxWidgets)
to specify where is your installation of wxWidgets.

As you can see, WXWIN is already set. wx-widget already compiled with debug mode. I know, the prebuild version is working, but I want to know, how can I setup the enviroment.

I checked the registry.ini, there were one line difference. I checked the AppData/Roaming/Codelite/config/codelite.xml. There is 3 lines difference, but it is not relevent. I don't know what I have to set, to wx-config getting the WXWIN environment variable.
frank_frl
CodeLite Expert
Posts: 176
Joined: Sun Aug 17, 2008 2:45 pm
Contact:

Re: makefile problem

Post by frank_frl »

What are your project settings? For a debug version they should contain this:
g++:

Code: Select all

-g;-Wall;$(shell wx-config --wxcfg=gcc_dll/mswud --debug=yes --cxxflags --unicode=yes)
Linker:

Code: Select all

-g;$(shell wx-config --debug=yes --libs --unicode=yes);-Wl,--subsystem,windows -mwindows;
For release:
g++:

Code: Select all

-O2;$(shell wx-config --wxcfg=gcc_dll/mswu --debug=no --cxxflags --unicode=yes)
Linker:

Code: Select all

-g;$(shell wx-config --debug=no --libs --unicode=yes);-Wl,--subsystem,windows -mwindows;
To link against the static wxWidgets libs just change gcc_dll to gcc_lib.

Regards

Frank
User avatar
eranif
CodeLite Plugin
Posts: 6375
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by eranif »

There are 3 places where you could set an environment variable within codelite:
1) Settings -> Environment Variables
2) Workspace Settings (right click the workspace)
3) Project level (right click on the project -> settings -> environment)

The importance order:
project level >> workspace level >> global level

Make sure you got them set properly (i.e. project level does not override WXWIN from the global level with an incorrect value)
If you confirm that everything is set properly:

- Try setting it in the project level and see if it makes any difference
- Make sure that your wxWIdgets is installed where you set WXWIN
- Post here the *complete* build log + the file %appdata%\CodeLite\config\environment_variables.xml + your workspace zipped (you can exclude the .tags file to reudce file size)
Eran
Make sure you have read the HOW TO POST thread
Denzelii
CodeLite Curious
Posts: 5
Joined: Tue Feb 28, 2012 3:18 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: makefile problem

Post by Denzelii »

Thanks Frank & Eran!

There were problem at the building option and also there were problem at the environment variables, but your help the sample code was finaly compiled.


Thanks
Post Reply