I've updated the local SVN repository here to 4219, and when compiling I get this error:
Info: resolving SquirrelVM::_VM by linking to __imp___ZN10SquirrelVM3_VME (auto-import)
.objs\src\app.o: In function `ZN13CodeBlocksApp6OnInitEv':H:/CodeBlocks-svn/codeblocks-head/trunk/src/src/app.cpp:553: undefined reference to `_imp___ZN14ProjectManager16WorkspaceChangedEv'
collect2: ld returned 1 exit status
Maybe two weeks ago I had the same error and I thought it would be fixed. I also deleted all files not belonging to the repository and tried again, yet no success :(
Well I think I just delete the 'devel' and 'output' directories too in the future, [...]
In many cases that's not enough. If you really feel to keep the sources you have to clean libs, [P/G]CH files and object files in addition for a clean re-build. I have attached a batch files that does so but honestly: sometimes it's easier to do just a clean checkout from scratch - trust me.
@echo off
rem Setup C::B root folder of *sources* (!)
set CB_ROOT=C:\Devel\CodeBlocks\src
rem Usually below here no changes are required.
if not exist "%CB_ROOT%" goto ErrNoCB
if "%1"=="?" goto DO_HELP
if "%1"=="-?" goto DO_HELP
if "%1"=="/?" goto DO_HELP
if "%1"=="h" goto DO_HELP
if "%1"=="-h" goto DO_HELP
if "%1"=="/h" goto DO_HELP
if "%1"=="help" goto DO_HELP
if "%1"=="-help" goto DO_HELP
if "%1"=="/help" goto DO_HELP
goto DO_PARAMS
:DO_HELP
echo USAGE:
echo clean.bat - Remove all object, executable, PCH and library files
echo clean.bat obj - Remove only object files (folder .objs)
echo clean.bat exe - Remove only executable files (folder devel, output)
echo clean.bat devel - Remove only executable files (folder devel)
echo clean.bat output - Remove only executable files (folder output)
echo clean.bat pch - Remove only PCH files (*.gch)
echo clean.bat lib - Remove only library files (*.a)
goto TheEnd
:DO_PARAMS
if "%1"=="obj" goto DO_OBJ
if "%1"=="OBJ" goto DO_OBJ
if "%1"=="exe" goto DO_EXE
if "%1"=="EXE" goto DO_EXE
if "%1"=="devel" goto DO_DEVEL
if "%1"=="DEVEL" goto DO_DEVEL
if "%1"=="output" goto DO_OUTPUT
if "%1"=="OUTPUT" goto DO_OUTPUT
if "%1"=="pch" goto DO_PCH
if "%1"=="PCH" goto DO_PCH
if "%1"=="gch" goto DO_GCH
if "%1"=="GCH" goto DO_GCH
if "%1"=="lib" goto DO_LIB
if "%1"=="LIB" goto DO_LIB
:DO_OBJ
echo Removing old object files...
if exist "%CB_ROOT%\.objs" del /f /s /q "%CB_ROOT%\.objs\*.*"
if "%1"=="" goto DO_EXE
goto TheEnd
:DO_EXE
echo Removing old executable files...
if exist "%CB_ROOT%\devel" del /f /s /q "%CB_ROOT%\devel\*.*"
if exist "%CB_ROOT%\output" del /f /s /q "%CB_ROOT%\output\*.*"
if exist "%CB_ROOT%\build_tools\autorevision\autorevision.exe" del /q "%CB_ROOT%\build_tools\autorevision\autorevision.exe"
if exist "%CB_ROOT%\tools\ConsoleRunner\cb_console_runner.exe" del /q "%CB_ROOT%\tools\ConsoleRunner\cb_console_runner.exe"
rem skip devel and output -> is already done.
if "%1"=="" goto DO_PCH
goto TheEnd
:DO_DEVEL
echo Removing old executable files (devel)...
if exist "%CB_ROOT%\devel" del /f /s /q "%CB_ROOT%\devel\*.*"
if "%1"=="" goto DO_PCH
goto TheEnd
:DO_OUTPUT
echo Removing old executable files (output)...
if exist "%CB_ROOT%\devel" del /f /s /q "%CB_ROOT%\output\*.*"
if "%1"=="" goto DO_PCH
goto TheEnd
:DO_PCH
:DO_GCH
echo Removing old PCH files...
if exist "%CB_ROOT%\plugins\contrib\lib_finder\pch.h.gch" del /q "%CB_ROOT%\plugins\contrib\lib_finder\pch.h.gch"
if exist "%CB_ROOT%\include\sdk.h.gch" del /q "%CB_ROOT%\include\sdk.h.gch"
if exist "%CB_ROOT%\include\sdk_precomp.h.gch" del /q "%CB_ROOT%\include\sdk_precomp.h.gch"
if exist "%CB_ROOT%\tools\cb_share_config\wx_pch.h.gch" del /q "%CB_ROOT%\tools\cb_share_config\wx_pch.h.gch"
if exist "%CB_ROOT%\tools\cbSnipList\wx_pch.h.gch" del /q "%CB_ROOT%\tools\cbSnipList\wx_pch.h.gch"
if "%1"=="" goto DO_LIB
goto TheEnd
:DO_LIB
echo Removing old library files...
if exist "%CB_ROOT%\plugins\compilergcc\depslib\libdepslib.a" del /q "%CB_ROOT%\plugins\compilergcc\depslib\libdepslib.a"
if exist "%CB_ROOT%\plugins\contrib\devpak_plugin\bzip2\libbz2.a" del /q "%CB_ROOT%\plugins\contrib\devpak_plugin\bzip2\libbz2.a"
if exist "%CB_ROOT%\plugins\contrib\source_exporter\libwxPdfDocument.a" del /q "%CB_ROOT%\plugins\contrib\source_exporter\libwxPdfDocument.a"
if exist "%CB_ROOT%\sdk\propgrid\libpropgrid.a" del /q "%CB_ROOT%\sdk\propgrid\libpropgrid.a"
if exist "%CB_ROOT%\sdk\scripting\lib\libsqplus.a" del /q "%CB_ROOT%\sdk\scripting\lib\libsqplus.a"
if exist "%CB_ROOT%\sdk\scripting\lib\libsqstdlib.a" del /q "%CB_ROOT%\sdk\scripting\lib\libsqstdlib.a"
if exist "%CB_ROOT%\sdk\scripting\lib\libsquirrel.a" del /q "%CB_ROOT%\sdk\scripting\lib\libsquirrel.a"
if exist "%CB_ROOT%\sdk\wxFlatNotebook\libwxflatnotebook.a" del /q "%CB_ROOT%\sdk\wxFlatNotebook\libwxflatnotebook.a"
if exist "%CB_ROOT%\base\tinyxml\libtxml.a" del /q "%CB_ROOT%\base\tinyxml\libtxml.a"
if exist "%CB_ROOT%\src\wxAUI\libwxaui.a" del /q "%CB_ROOT%\src\wxAUI\libwxaui.a"
goto TheEnd
:ErrNoCB
echo Error: C::B root folder not found.
goto TheEnd
:TheEnd
Place this file into the C::B\src folder and change the C::B root path in the variable on top of the file accordingly.
Notice: This is a hack for itself! It will erase files! So use it at your own risk.
With regards, Morten.