Architecture mixup

Ian Wadham iandw.au at gmail.com
Wed May 16 23:25:17 PDT 2012


This is not strictly a Macports question, but my problem might be
due to a Macports upgrade so someone here might be able to help.

I recently moved to Macports 2.0.4 and installed
    kdelibs4 @4.8.2_0
    kde4-runtime @4.8.2_0
    kdegames4 @4.8.2_0+docs
The games all built OK and work fine.

Not so my development setup for KDE Games, in which I get source from,
    svn.kde.org/home/kde/trunk/KDE/kdegames
i.e. the repository where KDE Games is developed and maintained.

For the past year or so, I have been able to develop, compile, build and test this
source code and the KDE Games library in an area I have set up on my machine,
using the latest kdelibs4 and qt4-mac as installed by Macports, but now I cannot
compile and build any of the KDE Games "trunk" source, not even a version I had
from a month ago that compiled and built OK back then.  Also, the said source code
compiles and builds OK on my Linux machine.

The diagnostics I keep getting, with different programs, look like this:

Linking CXX executable ktuberling.app/Contents/MacOS/ktuberling
Undefined symbols for architecture x86_64:
  "KStandardGameAction::gameNew(QObject const*, char const*, QObject*)", referenced from:
      TopLevel::setupKAction()      in toplevel.o
  "KStandardGameAction::load(QObject const*, char const*, QObject*)", referenced from:
      TopLevel::setupKAction()      in toplevel.o
  "KStandardGameAction::save(QObject const*, char const*, QObject*)", referenced from:
      TopLevel::setupKAction()      in toplevel.o
  "KStandardGameAction::print(QObject const*, char const*, QObject*)", referenced from:
      TopLevel::setupKAction()      in toplevel.o
  "KStandardGameAction::quit(QObject const*, char const*, QObject*)", referenced from:
      TopLevel::setupKAction()      in toplevel.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [ktuberling/ktuberling.app/Contents/MacOS/ktuberling] Error 1
make[1]: *** [ktuberling/CMakeFiles/ktuberling.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs….

The thing is that the KDE Games library that contains these symbols has just been compiled
and linked successfully and should be found, by CMake and make, among the stuff waiting
to be installed.  And that library is listed by the "file" command as:
    libkdegames.6.0.0.dylib:        Mach-O 64-bit dynamically linked shared library x86_64
So how can the above error messages arise?

Also, if I remove all vestiges of other KDE Games libraries from my system, then
compile, build and install just the KDE Games libraries and finally try to compile and
build just one game, I again get error messages as above.

I think my processor is quad core 64-bit.  It is a 15" Macbook Pro of early 2011 vintage.

It is described by "About This Mac" as "2 GHz Intel Core i7".  My software is:
    Mac OS X 10.7.4 Lion
    XCode 4.2.1
    Macports 2.0.4

Oddly, "arch" says i386 and "machine" says i486.  Shouldn't they say x86_64?

What is going on?  Why can't I build?  Ideas would be very welcome.

Thank you in advance, Ian W.





More information about the macports-users mailing list