Objective-C Datenbankverbindung

Sund0se

Cadet 4th Year
Registriert
Mai 2010
Beiträge
73
Hey Leute,

ich muss für die Schule nächste Woche eine wichtige Arbeit abgeben und kann mein Programm nicht ausführen, da der Linker einen Fehler wirft.

Hier der Fehler:
Code:
ld: warning: ignoring file /Users/josefhuber/Desktop/MCPKit/MCPKit_bundled.framework/MCPKit_bundled, file was built for unsupported file format ( 0xfe 0xed 0xfa 0xce 0x 0 0x 0 0x 0 0x12 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 6 ) which is not the architecture being linked (i386): /Users/josefhuber/Desktop/MCPKit/MCPKit_bundled.framework/MCPKit_bundled
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_MCPConnection", referenced from:
      objc-class-ref in Projektuebersicht.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Natürlich habe ich schon gegoogelt und auch viel gefunden, jedoch nichts was mein Problem löst.

Ich habe das Framwork in den richtigen Ordner kopiert und auch die Referenz unter BuildPhases gesetzt. Kann es auch importieren und die Methoden verwenden. Dann habe ich auch noch geschaut ob unter BuildPhases alle .m Dateien in CompileSorces enthalten sind und jetzt weiß ich nicht mehr weiter. Das SystemConfiguration Framework hab ich auch schon hinzugefügt - hat auch nichts gebracht!

Also ich habe schon alles probiert was der versucht hat (ca. selbe Problem):
http://stackoverflow.com/questions/6984368/undefined-symbols-for-architecture-i386-objc-class-skpsmtpmessage-refere


Zur Info: ohne MPC-Connection funktioniert mein Programm!

Bitte um Hilfe!

Lg
 
Zuletzt bearbeitet:
Habe damit leider keine Erfahrung, aber rein von dem was der Linker mir hier zu sagen versucht würde ich meinen, du hast die falsche lib für dein System. Mir ist unklar ob er sich hier beschwert, dass du ihm am64 gelinked hast, er jedoch ein i386 sucht, oder umgekehrt. Aber die Zeichen stehen gut, das es ein solches oder ähnlich geartetes Problem ist.

Das ist mein Tipp ins Blaue :)
 
Hi,

danke für deinen Tipp aber das kann es nicht sein, da 3.0.1 die aktuellste Version ist.

Anschließend habe ich noch folgendes gefunden:
http://stackoverflow.com/questions/4917752/how-to-get-rid-of-the-warning-file-was-built-for-unsupported-file-format-when
Hier verstehe ich jedoch nicht ganz wie er das macht, dass sich der Linker die Richtige Version nimmt:
http://stackoverflow.com/questions/4917752/how-to-get-rid-of-the-warning-file-was-built-for-unsupported-file-format-when
Was sind diese .a-Files und wo befinden sich die?
Kann mir da jemand weiterhelfen?

Lg
 
Zuletzt bearbeitet:
Und was hat die Version 3.0.1 nun mit dem falsch verwendeten Befehlssatz zutun?
Immo seh ich das wie Sjeg, er beschwert sich das die gelinkten Module nicht zur Architektur passen.
 
Mojo1987 schrieb:
Und was hat die Version 3.0.1 nun mit dem falsch verwendeten Befehlssatz zutun?
Immo seh ich das wie Sjeg, er beschwert sich das die gelinkten Module nicht zur Architektur passen.

Ja stimmt auch wieder. Aber was soll ich da machen?
 
Dein Target ändern auf x64 ...weil die Library, die du nutzt rein 64bit unterstützt.
 
Wie ändere ich den Target bei xcode 4?
Also wenn ich bei meinem Projekt unter Targets gehe, was soll ich dann ändern?

Nochmal Edit:

Bei Architecutre habe ich Standard (armv7, armv7s). Da kann ich aber nichts ändern.
Ergänzung ()

Ich mache es jetzt mit einem externen PHP File, welches ich aufrufe. Hoffe der Lehrer hat nichts dagegen ;).
 
Zuletzt bearbeitet:
Zurück
Oben