I encounter a problem when build sqlite for iOS

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

I encounter a problem when build sqlite for iOS

Kingle Zhuang
shell.c:7098:9: error: 'system' is unavailable: not available on iOS
    x = system(zCmd);
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/stdlib.h:195:6: note: 'system' has been explicitly marked unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
1 error generated.
make: *** [sqlite3-shell.o] Error 1
/Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch i386 -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\" -DPACKAGE_VERSION=\"3.20.0\" -DPACKAGE_STRING=\"sqlite\ 3.20.0\" -DPACKAGE_BUGREPORT=\"http://www.sqlite.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.20.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -I.   -I/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk -D_REENTRANT=1 -DSQLITE_THREADSAFE=1     -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS -Os -DSQLITE_ENABLE_LOCKING_STYLE=1 -DSQLITE_ENABLE_API_ARMOR -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_MAX_MMAP_SIZE=0 -DSQLITE_OMIT_AUTORESET -DSQLITE_OMIT_BUILTIN_TEST -DSQLITE_OMIT_LOAD_EXTENSION -I/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk -MT sqlite3-shell.o -MD -MP -MF .deps/sqlite3-shell.Tpo -c -o sqlite3-shell.o `test -f 'shell.c' || echo './'`shell.c
shell.c:7098:9: error: 'system' is unavailable: not available on iOS
    x = system(zCmd);
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/stdlib.h:195:6: note: 'system' has been explicitly marked unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
1 error generated.
make: *** [sqlite3-shell.o] Error 1
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: I encounter a problem when build sqlite for iOS

Richard Hipp-3
On 1/30/18, Kingle Zhuang <[hidden email]> wrote:
> shell.c:7098:9: error: 'system' is unavailable: not available on iOS
>     x = system(zCmd);

Is the command-line shell in any way useful to iOS?  Are you able to
run the command-line shell on iOS?  Can you explain to us how you do
that, because that is not something we developers know how to do.


>         ^
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/stdlib.h:195:6:
> note: 'system' has been explicitly marked unavailable here
> int      system(const char *) __DARWIN_ALIAS_C(system);
>          ^
> 1 error generated.
> make: *** [sqlite3-shell.o] Error 1
> /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch i386
> -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\"
> -DPACKAGE_VERSION=\"3.20.0\" -DPACKAGE_STRING=\"sqlite\ 3.20.0\"
> -DPACKAGE_BUGREPORT=\"http://www.sqlite.org\" -DPACKAGE_URL=\"\"
> -DPACKAGE=\"sqlite\" -DVERSION=\"3.20.0\" -DSTDC_HEADERS=1
> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
> -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_FDATASYNC=1
> -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1
> -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -I.   -I/include -isysroot
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk
> -D_REENTRANT=1 -DSQLITE_THREADSAFE=1     -DSQLITE_ENABLE_FTS3
> -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS -Os
> -DSQLITE_ENABLE_LOCKING_STYLE=1 -DSQLITE_ENABLE_API_ARMOR
> -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_MAX_MMAP_SIZE=0
> -DSQLITE_OMIT_AUTORESET -DSQLITE_OMIT_BUILTIN_TEST
> -DSQLITE_OMIT_LOAD_EXTENSION -I/include -isysroot
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk
> -MT sqlite3-shell.o -MD -MP -MF .deps/sqlite3-shell.Tpo -c -o
> sqlite3-shell.o `test -f 'shell.c' || echo './'`shell.c
> shell.c:7098:9: error: 'system' is unavailable: not available on iOS
>     x = system(zCmd);
>         ^
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/stdlib.h:195:6:
> note: 'system' has been explicitly marked unavailable here
> int      system(const char *) __DARWIN_ALIAS_C(system);
>          ^
> 1 error generated.
> make: *** [sqlite3-shell.o] Error 1
> _______________________________________________
> sqlite-users mailing list
> [hidden email]
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>


--
D. Richard Hipp
[hidden email]
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: I encounter a problem when build sqlite for iOS

Richard Hipp-3
I have checked in changes (written by Dan) that should address your
concerns.  The next release of SQLite will probably run the Makefile
to completion without errors in your environment.

NB:  This is not an error in SQLite.  The problem is in a Makefile
such that the Makefile does not play well with your iOS sdk.  Or,
perhaps we should say that your sdk is using the SQLite Makefile in a
way that the Makefile was never intended to be used.  I am sorry it is
giving you trouble.  View this situation as an opportunity to expand
you skill set by learning to operate the Makefile from the
command-line.  This may be frustrating at first if you have never done
that kind of thing before, but it is a skill that will pay you
countless dividends throughout your career if you will take the time
to learn it now.

On 1/30/18, Kingle Zhuang <[hidden email]> wrote:

> Environment:
> Mac + Xcode9.2
>
> Steps:
> 1. Using sqlite build script to generate static libs & header files
> [Attachments: build-sqlite.zip]
> 2. Build Archs: i386, x86_64, armv7, armv7s, arm64
> 3. Run configure to generate makefile & using iOS sdk to build it.
>
> Many guys encountered such problem & still not found good solutions:
> https://github.com/sqlcipher/sqlcipher/issues/240
> https://github.com/cocos2d/cocos2d-x/issues/17907
> https://github.com/HaxeFlixel/flixel/issues/2112
>
>
> On 1/30/18, 10:30 PM, "[hidden email] on behalf of Richard Hipp"
> <[hidden email] on behalf of [hidden email]> wrote:
>
>     On 1/30/18, Kingle Zhuang <[hidden email]> wrote:
>     > shell.c:7098:9: error: 'system' is unavailable: not available on iOS
>     >     x = system(zCmd);
>
>     Is the command-line shell in any way useful to iOS?  Are you able to
>     run the command-line shell on iOS?  Can you explain to us how you do
>     that, because that is not something we developers know how to do.
>
>
>     >         ^
>     >
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/stdlib.h:195:6:
>     > note: 'system' has been explicitly marked unavailable here
>     > int      system(const char *) __DARWIN_ALIAS_C(system);
>     >          ^
>     > 1 error generated.
>     > make: *** [sqlite3-shell.o] Error 1
>     > /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch i386
>     > -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\"
>     > -DPACKAGE_VERSION=\"3.20.0\" -DPACKAGE_STRING=\"sqlite\ 3.20.0\"
>     >
> -DPACKAGE_BUGREPORT=\"https://urldefense.proofpoint.com/v2/url?u=http-3A__www.sqlite.org&d=DwIBaQ&c=fxtm8VyUXgCVDKhi9yIVsVsjq1ocZ-LZVehzdzjopw0&r=-h5cCTUebAX5iBiy5e8p2yBktDE1lF2eG68a_tt_aQw&m=OT8nseoReS0uIgwGyYrCRQCUxUTM-fBKQt63TH_9DaQ&s=G4xhtVG-js9npBS1WwIo2CfizAJFz9SuHaaaz_zCPII&e=\"
> -DPACKAGE_URL=\"\"
>     > -DPACKAGE=\"sqlite\" -DVERSION=\"3.20.0\" -DSTDC_HEADERS=1
>     > -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
> -DHAVE_STRING_H=1
>     > -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1
>     > -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
> -DHAVE_FDATASYNC=1
>     > -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1
>     > -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -I.   -I/include
> -isysroot
>     >
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk
>     > -D_REENTRANT=1 -DSQLITE_THREADSAFE=1     -DSQLITE_ENABLE_FTS3
>     > -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS -Os
>     > -DSQLITE_ENABLE_LOCKING_STYLE=1 -DSQLITE_ENABLE_API_ARMOR
>     > -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_MAX_MMAP_SIZE=0
>     > -DSQLITE_OMIT_AUTORESET -DSQLITE_OMIT_BUILTIN_TEST
>     > -DSQLITE_OMIT_LOAD_EXTENSION -I/include -isysroot
>     >
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk
>     > -MT sqlite3-shell.o -MD -MP -MF .deps/sqlite3-shell.Tpo -c -o
>     > sqlite3-shell.o `test -f 'shell.c' || echo './'`shell.c
>     > shell.c:7098:9: error: 'system' is unavailable: not available on iOS
>     >     x = system(zCmd);
>     >         ^
>     >
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/stdlib.h:195:6:
>     > note: 'system' has been explicitly marked unavailable here
>     > int      system(const char *) __DARWIN_ALIAS_C(system);
>     >          ^
>     > 1 error generated.
>     > make: *** [sqlite3-shell.o] Error 1
>     > _______________________________________________
>     > sqlite-users mailing list
>     > [hidden email]
>     >
> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailinglists.sqlite.org_cgi-2Dbin_mailman_listinfo_sqlite-2Dusers&d=DwIBaQ&c=fxtm8VyUXgCVDKhi9yIVsVsjq1ocZ-LZVehzdzjopw0&r=-h5cCTUebAX5iBiy5e8p2yBktDE1lF2eG68a_tt_aQw&m=OT8nseoReS0uIgwGyYrCRQCUxUTM-fBKQt63TH_9DaQ&s=71bvNnAjK1XcZuqOpTnfZRtv2EMM9_brKTsqSogoyIY&e=
>     >
>
>
>     --
>     D. Richard Hipp
>     [hidden email]
>
>
>


--
D. Richard Hipp
[hidden email]
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: I encounter a problem when build sqlite for iOS

Jens Alfke-2
In reply to this post by Kingle Zhuang
If building for an Apple platform, it's much easier to just link with libSQLite3.dylib, as most apps do. It'll shrink your app binary by about 1MB too.

—Jens


_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users