Hi, I'm having a build problem with Clam 1.4.1~svn15308 on my iMac. I'm using QT 4.8.4 library frameworks and tools and all 64-bit dependencies. Llvm-g++-4.2 compiler. The 3 Clam libraries all compiled just fine. So on to Network Editor. At first, the build halted trying to link the first library target: libclam_qtmonitors.1.4.1.dylib :
Undefined symbols for architecture x86_64: "_glBegin", referenced from: CLAM::VM::Tonnetz::DrawTile(int, int)in Tonnetz.os QFirstPerson::roomWall(float, float)in moc_QFirstPerson.os QFirstPerson::paintDecoration() in moc_QFirstPerson.os "_glBlendFunc", referenced from: CLAM::VM::Tonnetz::initializeGL() in Tonnetz.os QFirstPerson::initializeGL() in moc_QFirstPerson.os "_glColor4fv", referenced from: QFirstPerson::paintDecoration() in moc_QFirstPerson.os QFirstPerson::paintScene() in moc_QFirstPerson.os ….. … 38 more missing _gl** symbols, all referenced from moc_QFirstPerson.os Well, that's because on OSX 10.8.2 the only place those symbols exist is in libGL.1.dylib and libGLU.1.dylib , which both must be added to the final link step. Those symbols are NOT in OpenGL.framework,OpenAL.framework, in any of the 10.5 to 10.8 MacSDKs, or in the new XCode IDE. Only in the new X11-quartz library package as dylibs. In fact, the build stopped earlier when <GL/Glu.h> was not found from QFirstPerson.hxx. Which is when I pointed it to </opt/X11/include/Glu.h>. Also by the way,that ('/opt') does not suggest I use MacPorts or anything nasty like that, that's where Apple installs the new X11 quartz pkg, sym-linking the pre-existing /usr/X11 folder. So I built libclam_qtmonitors from the command line by simply adding -L/opt/X11/lib -lGL -lGLU. Glad I had verbose enabled for the full gcc string. So, next target is src/clamWidgetsPlugin. I tried scons -k to see where it thought it was and to see further output. All 19 *.hxx in the folder fail to generate the moc, with the same error. Scons output: moc -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/opt/local/include -I/usr/local/include -I/opt/gtk/audio-96/include -I/Library/Frameworks/QtCore.framework/headers -I/Library/Frameworks/QtGui.framework/headers -I/Library/Frameworks/QtOpenGL.framework/headers -I/Library/Frameworks/QtXml.framework/headers -I/Library/Frameworks/QtSvg.framework/headers -I/Library/Frameworks/QtUiTools.framework/headers -I/Library/Frameworks/QtDesigner.framework/headers -I/Library/Frameworks/QtWebKit.framework/headers -I/Library/Frameworks/QtNetwork.framework/headers -I/Library/Frameworks/QtXmlPatterns.framework/headers -o src/clamWidgetsPlugin/generated/moc_KeySpacePlugin.cxx src/clamWidgetsPlugin/KeySpacePlugin.hxx ---- src/clamWidgetsPlugin/KeySpacePlugin.hxx:33: Error: Undefined interface scons: ** [src/clamWidgetsPlugin/generated/moc_KeySpacePlugin.cxx]Error 1.. src/clamWidgetsPlugin/CLAMWidgets.hxx:10: Error: Undefined interface scons: ** [src/clamWidgetsPlugin/generated/moc_CLAMWidgets.cxx] Error 1.. src/clamWidgetsPlugin/QFirstPersonPlugin.hxx:33: Error: Undefined interface scons: *** [src/clamWidgetsPlugin/generated/moc_QFirstPersonPlugin.cxx] Error 1 etc Looks defined to me, they all have Q_INTERFACES(QDesignerCustomWidgetInterface), and <QtDesigner/customwidget.h> sure looks to declare them. Scons has cheese documentation IMHO, how does one know whether it's going to start all over when invoked or resume after a error is corrected? Can it list targets like make or CMake? Also, where in your Sconstruct can I add the libGL and libGLU dependencies so I can rebuild without having it halt with the first target. (Didn't one use to need a Sconstruct in each subfolder?) By the way, in your Sconstruct ln:30 for the Clam Libs, there's a comment for opts.Add( 'LINKFLAGS'..) that mentions adding OPenGL.framework for OSX, well those libs don't need it, Network Editor does, only NOT the frameworks, the X11 dylibs.If your building with the GL includes you kind of need to link the library. At least on 10.8 Mountain Lion. Can one declare options on the command line (LDFlags?) when invoking scons or only when sconstruct knows what to do with them? Or in ENV? So at this point I could use some advice about my undefined interface for the clamWidgetsPlugin sources. I built this project several years ago on a PPC ibook, scons gave me a headache the, now with a new Qt, new OS, a bs Xcode update and whatelse, I want to bring it up to date. Know anyone who has built this on 64 bit 10.8? Thanks, Jeff K PS; Your tarball release won't build on 10.8 and never will. Xerces with DOMWriter cannot be compiled, I noticed you canned it too in CVS. Actually, CVS won't even start to compile as long as EmbeddedFile.hxx only allows __MINGW32__ and __ELF__ or #error "No support for embedded files in your platform" pops up. We'll see about that. _______________________________________________ clam-devel mailing list clam-devel@lists.clam-project.org http://lists.clam-project.org/listinfo.cgi/clam-devel-clam-project.org