News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Doesn't build since rev 3050 (at least for MacOSX?)

Started by bnilsson, October 14, 2006, 09:09:16 PM

Previous topic - Next topic

bnilsson

Dual 2.3GHz PowrPC G5
Mac OSX 10.4.8
wxWidgets 2.6.3

Hi!

The latest successful rev I have is 3050.
Lately I have got the following build problem:
....
/usr/bin/ld: Undefined symbols:
wxFlatNotebook::SetSelection(unsigned long)
wxFlatNotebook::SetGradientColorTo(wxColour const&)
wxFlatNotebook::SetGradientColorFrom(wxColour const&)
wxFlatNotebook::SetGradientColorBorder(wxColour const&)
wxFlatNotebook::GetSelection() const
collect2: ld returned 1 exit status
make[3]: *** [codeblocks] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1


and it does not seem to go away by waiting and doing occasional "svn update"

Any suggestions?


MortenMacFly

Did you try a full rebuild? (Or removed manually any *.o; *.a and *.gch files...?)
With regards, Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]

bnilsson

I actually removed all and did a new svn checkout.
I patched from the wiki OSX install page

patch -p0 -i codeblocks-rev2970_pkgconfig.patch
patch -p0 -i codeblocks-rev2994_pluginslib.patch
patch -p0 -i codeblocks-appselfpath.patch
patch -p0 -i codeblocks-wxauigtk.patch
(two of the wiki patches I have found obsolete, so I did not apply these)

I did bootstrap and

./configure --enable-contrib --prefix=$HOME CXXFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
and make.

I also tried without the patches above, but got the same result.


afb

I'm attempting a build of rev 3090, will update the Wiki when complete.

afb

Quote from: bnilsson on October 15, 2006, 01:11:44 PM
I actually removed all and did a new svn checkout.

Did you also uninstall / remove all libraries, before doing the build ?
(i.e. "make uninstall clean make", or doing something similar to that)

There is a bug with the current build scripts that makes it prefer
linking to /usr/local/lib or $PREFIX/lib over the local libraries... :-(

http://forums.next.codeblocks.org/index.php?topic=4088.0

afb

Quote from: bnilsson on October 14, 2006, 09:09:16 PM
Lately I have got the following build problem:
....
/usr/bin/ld: Undefined symbols:
wxFlatNotebook::SetSelection(unsigned long)
wxFlatNotebook::SetGradientColorTo(wxColour const&)
wxFlatNotebook::SetGradientColorFrom(wxColour const&)
wxFlatNotebook::SetGradientColorBorder(wxColour const&)
wxFlatNotebook::GetSelection() const
collect2: ld returned 1 exit status

Reproduced. Looks like a wxMac issue.

afb

The issue seems to be that it is linking towards "wxFlatNotebookBase" while declaring "wxFlatNotebook".


$ grep -r ZN14wxFlatNotebook12SetSelectionEm .
Binary file ./src/sdk/.libs/editorbase.o matches
Binary file ./src/sdk/.libs/editormanager.o matches
Binary file ./src/sdk/.libs/libcodeblocks.0.0.1.dylib matches
Binary file ./src/sdk/.libs/libcodeblocks.0.dylib matches
Binary file ./src/sdk/.libs/libcodeblocks.dylib matches
Binary file ./src/sdk/.libs/messagemanager.o matches
Binary file ./src/sdk/.libs/projectmanager.o matches
Binary file ./src/src/app.o matches
Binary file ./src/src/main.o matches



$ grep -r ZN18wxFlatNotebookBase12SetSelectionEm .
Binary file ./src/sdk/.libs/libcodeblocks.0.0.1.dylib matches
Binary file ./src/sdk/.libs/libcodeblocks.0.dylib matches
Binary file ./src/sdk/.libs/libcodeblocks.dylib matches
Binary file ./src/sdk/wxFlatNotebook/.libs/libwxflatnotebook.a matches
Binary file ./src/sdk/wxFlatNotebook/.libs/wxFlatNotebook.o matches



$ echo __ZN14wxFlatNotebook12SetSelectionEm | c++filt
wxFlatNotebook::SetSelection(unsigned long)
$ echo __ZN18wxFlatNotebookBase12SetSelectionEm | c++filt
wxFlatNotebookBase::SetSelection(unsigned long)


eranif

The class wxFlatNotebookBase is no longer exist ... check you header files and make sure that you are up to date.
Eran

afb

Yup, had removed the old libs but had some old stray headers left.


sudo rm -r /usr/local/include/codeblocks


It would be nice if the build scripts (i.e. autotools) could be fixed,
so that it looks in the local dirs before it looks in the system dirs... ?

It also fails to link if you have e.g. an unicode wx in $PREFIX and
a ansi wx in /usr/local, to name a common example that I run into

Moral: make sure to you remove all the objects, and headers too!

afb

It also seems like "make clean" missed to clean up src/sdk/wxFlatNotebook/.libs ?

afb

I eventually got rev3090 to build, but the new wxFlatNotebook doesn't work yet so I'm not releasing it.
Updated the Wiki by removing obsolete patches, and added references to new temporary workarounds...