Mac OS X: Xcode linking problem with 1.7.6

  • Nichisai

    Nichisai - 2006-11-16

    Hi guys,

    I'm running Mac OS X 10.4.8 and I'm trying to build the release version of Pixie 1.7.6 using Xcode 2.4 but I'm running into a problem when building certain targets. The targets that are giving me problems are the applications (sdrc, rndr, srdinfo and texmake). Let me first give some feedback from the building I did.

    Steps so far:
    unpack Pixie and put it in /Pixie (straight in the root)
    use fink to:
    - install libtiff 3.6.1-4 and
    - upgrade bison to 2.0 (Mac comes with 1.28 which gives me a lot of parsing errors)

    The build transcript of sdrc shows the following error while compiling:
    CompileCplusplus /Pixie/xcode/pixie/build/ ../../src/sdrc/dso.cpp
        /usr/bin/g++-4.0  -c -I/Pixie/xcode/pixie/build/   -F/Pixie/xcode/pixie/build/Release  -I/Pixie/xcode/pixie/build/Release/include -I../../src/sdrc  -arch ppc -fno-common -fpascal-strings -O0 -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -pipe "-fmessage-length=0" -mdynamic-no-pic -g       ../../src/sdrc/dso.cpp  -o /Pixie/xcode/pixie/build/
    dso.y:35:23: error: common/os.h: No such file or directory
    dso.y: In function 'int dsoParse(const char*, char*&, char*&)':
    dso.y:161: error: 'TRUE' was not declared in this scope
    dso.y:164: error: 'FALSE' was not declared in this scope
    dso.y: At global scope:
    dso.y:40: warning: 'nameBuffer' defined but not used
    lex.dso.cpp:1071: warning: 'void yyunput(int, char*)' defined but not used

    Problem in this case is that the src directory is not set correct, thus I correct this by adding it to target's "search path". Now the common/os.h and .cpp files are found however, while linking I get this error:

    StandaloneExecutable.LinkUsingFileList /Pixie/xcode/pixie/build/Release/ /Pixie/xcode/pixie/build/
        /usr/bin/g++-4.0  -o /Pixie/xcode/pixie/build/Release/  "-L/Pixie/xcode/pixie/build/Release"  "-F/Pixie/xcode/pixie/build/Release"  -filelist /Pixie/xcode/pixie/build/  "-arch" "ppc" "-prebind" "-Wl,-no_arch_warnings"  
    /usr/bin/ld: warning prebinding disabled because of undefined symbols
    /usr/bin/ld: Undefined symbols:
    osEnumerate(char const*, int (*)(char const*, void*), void*)
    osLoadModule(char const*)
    osResolve(void*, char const*)
    osDeleteFile(char const*)
    collect2: ld returned 1 exit status

    When looking in build directory I'm able to find os.o in /Pixie/xcode/pixie/build/

    I just don't know how to specify the linker to use this directory & file. Can someone give me any hint? I suppose that if this linking problem is solved it for sdrc, then the linking errors of the applications should be treated the same way.


    • Nichisai

      Nichisai - 2006-11-16

      Of course I forget to mention that I already build the common target so libcommon.a can be found at /Pixie/xcode/pixie/build/Release

      Looking at the build line, that directory is specified, however the library won't be used. So still, I'm a clueless.

      • George Harker

        George Harker - 2006-11-16

        The XCode projects are kind of a work in progress right now.

        However, if you drag the libcommon from the products folder (in XCode on the left) to the libri target, so it gets added as a dependency then static link should succeed.

        This can be run (without installing it) by inserting the following environment var into your environment

        DYLD_LIBRARY_PATH = </path/to/your/built/products/dir>

        OR if you run the install from within xcode it should work.

        We'll be updating the project for future releases, so watch the release notes if you still have any issues.  ... Or if you've got fixes, let us know.




Log in to post a comment.