GO auf OS X 10.6.8

  • zuerst


    Quote

    david$ cmake -G "Unix Makefiles" -DUNICODE=1 . -DCMAKE_CXX_COMPILER=/usr/local/bin/g++-5 -DCMAKE_CXX_FLAGS=-g -DCMAKE_C_FLAGS=-g -DDOCBOOK_DIR=/usr/local/Cellar/docbook-xsl/1.78.1/docbook-xsl -DINSTALL_DEPEND=OFF -DCMAKE_C_COMPILER=/usr/local/bin/gcc-5


    dann 'make', sagt:


    Quote

    make[2]: Circular GrandOrgue.app/Contents/Resources/demo/demo.organ <- demo dependency dropped.
    [100%] Built target demo
    make[1]: Target `all' not remade because of errors.
    make: *** [all] Error 2
    make: Target `default_target' not remade because of errors.

  • Die Fehlermeldung ist zu kurz. "Circular GrandOrgue.app/Contents/Resources/demo/demo.organ <- demo dependency dropped." ist noch nicht der Fehler.


    PS: Als einfaches Testprogramm für wxmac kann man touchtest.cpp von http://trac.wxwidgets.org/ticket/17082 herunterladen und übersetzen:

    Code
    1. g++ -o touchtest touchtest.cpp $(wx-config --libs --cxxflags)


    Danach sollte es laufen und man mit der linken Maustaste eine Linie im Fenster zeichnen können.

  • Hab mal folgendes gemacht:


    Quote

    david$ g++ --version
    i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
    Copyright (C) 2007 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


    Da müsste aber Version 5 stehen, nicht?

  • Hier der output von cmake:


  • Damit sind wir wieder beim 32/64 Bit Problem vom GCC. wxWidgets haben wir für 32 Bit gebaut.


    Wenn du ein 32 Bit GO willst, dann setze -DCMAKE_C_FLAGS=-m32 und -DCMAKE_CXX__FLAGS=-m32 beim GO cmake.


    Wenn du ein 64 Bit GO willst, ändere [nur während der folgenden Umwandlungen]

    Code
    1. [arch_32_bit, arch_64_bit].extend ArchitectureListExtension


    auf

    Code
    1. [arch_64_bit].extend ArchitectureListExtension


    Dann musst du zuerst libtiff und danach wxmac neu umwandeln [wie vorher]. Dann sollte der Link von touchtest.cpp wie auch von GO klappen.

  • libtiff:


    wxmac:

  • Ich nehme an, das noch irgendein ein Library (wahrscheinlich eins von libtiff, libpng und jpeq) nicht für 64 Bit vorliegt.


    Der Output von wxmac ist wieder (diesmal von brew) zu stark gekürzt, so das man den eigentlichen Fehler nicht sieht.
    Zu den Logs kommt man lt. brew Doku mittels:

    Quote


    * The output from brew install -v <formula name>
    * The contents of the largest numbered log in ~/Library/Logs/Homebrew/<formula name>, e.g. 03.make

  • Sorry, der Weg wird zu kompliziert für solchen Remote Support.


    Versuchen wir es mit einen aktuellen clang unter Verwendung eines originalen brew.

    Code
    1. brew install llvm --with-clang


    Damit sollte hoffentlich ein aktuelles Clang installiert sein (um die 3.6.2)

    Code
    1. clang --version
    2. clang++ --version


    Den Compiler kann man auch testen, um Fehlversuche zu vermeiden:

    Code
    1. clang -o hello hello.c -g
    2. clang++ -o hello1 hello1.cpp -g
    3. ./hello
    4. ./hello1


    Code
    1. brew install libtiff --cc=clang
    2. brew install wxmac --cc=clang


    wxWidgets kann man dann auch testen:

    Code
    1. clang++ -o touchtest touchtest.cpp $(wx-config --libs --cxxflags)
    2. ./touchtest


    Der GO CMake Aufruf müsste dann auch noch leicht angepasst werden:

    Code
    1. cmake -G "Unix Makefiles" -DUNICODE=1 . -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_CXX_FLAGS=-g -DCMAKE_C_FLAGS=-g -DDOCBOOK_DIR=/usr/local/Cellar/docbook-xsl/1.78.1/docbook-x sl -DCMAKE_C_COMPILER=/usr/local/bin/clang
  • Dein Xcode (und daher auch das OS X SDK) ist etwas alt.


    Bei der Suche nach der Lösung ist mir aufgefallen, das es ein LLVM Packet gibt, das extra Code für Snow Leopard hat und wo der Fehler schon einmal behoben worden sein soll (https://github.com/Homebrew/homebrew-versions/issues/219). Bevor wir an den bestehenden etwas ändern, würde ich es gerne danut versuchen.

    Code
    1. brew install homebrew/versions/llvm36


    [Mit -v gibt es wie oben wieder ein Log, wenn ein Fehler auftritt].