1
votes

I have an error in project, but I d'nt know were is the problem. this is my error after compilation.

ld warning:

in /install/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libsqlite3.dylib, file is not of required architecture

ld warning:

in /install/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libsqlite3.0.dylib, file is not of required architecture Undefined symbols:"_sqlite3_open", referenced from: -[LiteSqlViewController openDB] in LiteSqlViewController.o "_sqlite3_close", referenced from: -[LiteSqlViewController openDB] in LiteSqlViewController.o

ld:

symbol(s) not found collect2: ld returned 1 exit status _sqlite3_open", referenced from:-[LiteSqlViewController openDB] in LiteSqlViewController.o "_sqlite3_close", referenced from:-[LiteSqlViewController openDB] in LiteSqlViewController.o

ld:

symbol(s) not found collect2: ld returned 1 exit status Build failed (2 errors)

I use OSX 10.5.8 xcode 3.1.2 iphone simulator 2.2.1 Architecture PPC

the result of command:

file /usr/lib/libsqlite3.dylib : /usr/lib/libsqlite3.dylib: Mach-O universal binary with 4 architectures /usr/lib/libsqlite3.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc /usr/lib/libsqlite3.dylib (for architecture ppc64): Mach-O 64-bit dynamically linked shared library ppc64 /usr/lib/libsqlite3.dylib (for architecture i386): Mach-O dynamically linked shared library i386 /usr/lib/libsqlite3.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64.

2

2 Answers

9
votes

It doesn't seem to be too straightforward to use the iPhone Simulator on PPC Macs. Issue the command file with the path in the first error you get (right after the first ld warning:). Check out this related question, maybe these steps help.


Old answer:

Did you link libsqlite3.dylib in your project?

In Xcode 4 this can be done like shown in the screenshot: Press the plus sign and add libsqlite3.dylib. Afterwards, you can drag the library into the Linked Frameworks folder. (The screenshot shows a Mac OS X application, it's the same for iOS applications.)

Xcode 4 Screenshot

1
votes

Xcode 4 does not build PPC architecture (nor does it work for any OS prior to 10.6).

You'll need to make sure that your program and the libsqlite3.dylib library are built for the same architecture. I suspect the library is built for x86.

As others have said use the "file" command to determine what architectures a file was built for.