macbook air 컴파일 sqlcipher
SQLCipher 컴파일
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="/opt/local/lib/libcrypto.a"
오류:
clang: error: no such file or directory: '/opt/local/lib/libcrypto.a'
...
configure:2922: error: in `/Users/panjing/github/sqlcipher':
configure:2924: error: C compiler cannot create executables
See `config.log' for more details
첫 번째 단계는 순조롭게 통과되었다
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="-lcrypto"
두 번째 오류:
$ make
오류 정보:
sqlite3.c:18280:10: fatal error: 'openssl/rand.h' file not found
openssl 다시 설치
Last login: Sat Jun 9 16:53:04 on ttys000
➜ ~ brew uninstall --force openssl
➜ ~ brew cleanup --force -s openssl
➜ ~ brew prune
Pruned 0 symbolic links and 1 directories from /usr/local
➜ ~ brew install openssl
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
ace heroku ngspice
apache-spark hg-fast-export nomad
ballerina hugo nsd
bitrise imagemagick passenger
buildifier imagemagick@6 pgpool-ii
byacc infer phoronix-test-suite
cglm iozone php-cs-fixer
clhep jenkins plantuml
conan json-fortran ponyc
dfix krakend pre-commit
docker-squash libgit2 pyvim
exiftool libngspice restic
eye-d3 libplctag s3-backer
fibjs libraw saldl
flac linkerd spotbugs
folly mikutter stella
fonttools minetest terraform_landscape
fzf mingw-w64 treefrog
genact mkdocs unbound
gnupg@1.4 mkvtoolnix webpack
goreleaser mypy youtube-dl
gsoap nco zita-convolver
hadolint nesc
==> Deleted Formulae
aws-cloudsearch
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2o_1.high_sierr
######################################################################## 100.0%
==> Pouring openssl-1.0.2o_1.high_sierra.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
==> Summary
? /usr/local/Cellar/openssl/1.0.2o_1: 1,791 files, 12.3MB
➜ ~
프롬프트에 따라 다음을 수행합니다.
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
libcrypto를 수정합니다.a의 경로, 다시 컴파일:
➜ sqlcipher git:(master) ✗ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="/usr/local/opt/openssl/lib/libcrypto.a"
error:
sqlite3.c:21628:10: fatal error: 'openssl/rand.h' file not found
#include
^~~~~~~~~~~~~~~~
1 error generated.
make: *** [sqlite3.lo] Error 1
파일이 존재하지만 경로가 잘못되었습니다.
➜ sqlcipher git:(master) ✗ ls /usr/local/opt/openssl/include/openssl
aes.h des.h idea.h pem2.h ssl2.h
asn1.h des_old.h krb5_asn.h pkcs12.h ssl23.h
asn1_mac.h dh.h kssl.h pkcs7.h ssl3.h
asn1t.h dsa.h lhash.h pqueue.h stack.h
bio.h dso.h md4.h rand.h symhacks.h
blowfish.h dtls1.h md5.h rc2.h tls1.h
bn.h e_os2.h mdc2.h rc4.h ts.h
buffer.h ebcdic.h modes.h ripemd.h txt_db.h
camellia.h ec.h obj_mac.h rsa.h ui.h
cast.h ecdh.h objects.h safestack.h ui_compat.h
cmac.h ecdsa.h ocsp.h seed.h whrlpool.h
cms.h engine.h opensslconf.h sha.h x509.h
conf.h err.h opensslv.h srp.h x509_vfy.h
conf_api.h evp.h ossl_typ.h srtp.h x509v3.h
crypto.h hmac.h pem.h ssl.h
해결 방법:
➜ sqlcipher git:(master) ✗ brew link openssl --force
Warning: Refusing to link: openssl
Linking keg-only openssl means you may end up linking against the insecure,
deprecated system OpenSSL while using the headers from Homebrew's openssl.
Instead, pass the full include/library paths to your compiler e.g.:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
➜ sqlcipher git:(master) ✗
// ,
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" CPPFLAGS="-I/usr/local/opt/openssl/include"
컴파일:
➜ sqlcipher git:(master) ✗ clear
➜ sqlcipher git:(master) ✗ make
./libtool --mode=compile --tag=CC gcc -I/usr/local/opt/openssl/include -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/Users/panjing/github/sqlcipher/src -I/Users/panjing/github/sqlcipher/ext/rtree -I/Users/panjing/github/sqlcipher/ext/icu -I/Users/panjing/github/sqlcipher/ext/fts3 -I/Users/panjing/github/sqlcipher/ext/async -I/Users/panjing/github/sqlcipher/ext/session -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=1 -DSQLITE_TEMP_STORE=2 -c sqlite3.c
libtool: compile: gcc -I/usr/local/opt/openssl/include -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/Users/panjing/github/sqlcipher/src -I/Users/panjing/github/sqlcipher/ext/rtree -I/Users/panjing/github/sqlcipher/ext/icu -I/Users/panjing/github/sqlcipher/ext/fts3 -I/Users/panjing/github/sqlcipher/ext/async -I/Users/panjing/github/sqlcipher/ext/session -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=1 -DSQLITE_TEMP_STORE=2 -c sqlite3.c -fno-common -DPIC -o .libs/sqlite3.o
libtool: compile: gcc -I/usr/local/opt/openssl/include -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/Users/panjing/github/sqlcipher/src -I/Users/panjing/github/sqlcipher/ext/rtree -I/Users/panjing/github/sqlcipher/ext/icu -I/Users/panjing/github/sqlcipher/ext/fts3 -I/Users/panjing/github/sqlcipher/ext/async -I/Users/panjing/github/sqlcipher/ext/session -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=1 -DSQLITE_TEMP_STORE=2 -c sqlite3.c -o sqlite3.o >/dev/null 2>&1
./libtool --mode=link gcc -I/usr/local/opt/openssl/include -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/Users/panjing/github/sqlcipher/src -I/Users/panjing/github/sqlcipher/ext/rtree -I/Users/panjing/github/sqlcipher/ext/icu -I/Users/panjing/github/sqlcipher/ext/fts3 -I/Users/panjing/github/sqlcipher/ext/async -I/Users/panjing/github/sqlcipher/ext/session -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=1 -lcrypto -no-undefined -o libsqlcipher.la sqlite3.lo -lcrypto \
-rpath "/usr/local/lib" -version-info "8:6:8"
libtool: link: gcc -dynamiclib -o .libs/libsqlcipher.0.dylib .libs/sqlite3.o -lcrypto -install_name /usr/local/lib/libsqlcipher.0.dylib -compatibility_version 9 -current_version 9.6 -Wl,-single_module
libtool: link: (cd ".libs" && rm -f "libsqlcipher.dylib" && ln -s "libsqlcipher.0.dylib" "libsqlcipher.dylib")
libtool: link: ar cru .libs/libsqlcipher.a sqlite3.o
libtool: link: ranlib .libs/libsqlcipher.a
libtool: link: ( cd ".libs" && rm -f "libsqlcipher.la" && ln -s "../libsqlcipher.la" "libsqlcipher.la" )
./libtool --mode=link gcc -I/usr/local/opt/openssl/include -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/Users/panjing/github/sqlcipher/src -I/Users/panjing/github/sqlcipher/ext/rtree -I/Users/panjing/github/sqlcipher/ext/icu -I/Users/panjing/github/sqlcipher/ext/fts3 -I/Users/panjing/github/sqlcipher/ext/async -I/Users/panjing/github/sqlcipher/ext/session -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=1 -lcrypto -DHAVE_READLINE=0 -DHAVE_EDITLINE=1 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION -DSQLITE_ENABLE_STMTVTAB \
-o sqlcipher /Users/panjing/github/sqlcipher/src/shell.c libsqlcipher.la \
-ledit -lcrypto -rpath "/usr/local/lib"
libtool: link: gcc -I/usr/local/opt/openssl/include -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/Users/panjing/github/sqlcipher/src -I/Users/panjing/github/sqlcipher/ext/rtree -I/Users/panjing/github/sqlcipher/ext/icu -I/Users/panjing/github/sqlcipher/ext/fts3 -I/Users/panjing/github/sqlcipher/ext/async -I/Users/panjing/github/sqlcipher/ext/session -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -DSQLITE_THREADSAFE=1 -DHAVE_READLINE=0 -DHAVE_EDITLINE=1 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION -DSQLITE_ENABLE_STMTVTAB -o .libs/sqlcipher /Users/panjing/github/sqlcipher/src/shell.c ./.libs/libsqlcipher.dylib -ledit -lcrypto
컴파일 결과를 보려면 다음과 같이 하십시오.
➜ sqlcipher git:(master) ✗ ls
CHANGELOG.md config.h.in fts5parse.out manifest.uuid sqlcipher sqlite3.lo
LICENSE config.log fts5parse.y mkkeywordhash sqlcipher-1.1.8-testkey.db sqlite3.o
Makefile config.status install-sh mkso.sh sqlcipher-2.0-be-testkey.db sqlite3ext.h
Makefile.in config.sub keywordhash.h mptest sqlcipher-2.0-beta-testkey.db sqlite3session.h
Makefile.linux-gcc configure lemon opcodes.c sqlcipher-2.0-le-testkey.db src
Makefile.msc configure.ac lempar.c opcodes.h sqlcipher-3.0-testkey.db test
README.md contrib libsqlcipher.la parse.c sqlcipher.1 tool
VERSION doc libtool parse.h sqlcipher.pc tsrc
aclocal.m4 ext ltmain.sh parse.h.temp sqlcipher.pc.in vsixtest
art fts5.c macosx parse.out sqlcipher.xcodeproj
autoconf fts5.h magic.txt parse.y sqlite.pc.in
config.guess fts5parse.c main.mk shell.c sqlite3.c
config.h fts5parse.h manifest spec.template sqlite3.h
실행:
➜ sqlcipher git:(master) ✗ ./sqlcipher
SQLCipher version 3.20.1 2017-08-24 16:21:36
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .exit
➜ sqlcipher git:(master) ✗
sqlcipher 설치
➜ sqlcipher git:(master) ✗ brew install sqlcipher
위챗 데이터베이스 해독:
➜ Downloads sqlcipher
SQLCipher version 3.20.1 2017-08-24 16:21:36
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open EnMicroMsg.db
sqlite> pragma key='f4d27d4';
sqlite> pragma cipher_use_hmac=off;
sqlite> pragma cipher_page_size=1024;
sqlite> pragma kdf_iter=4000;
sqlite> attach database 'MicroMsg.db' as wc key '';
sqlite> select sqlcipher_export('wc');
sqlite> detach database wc;
sqlite> .quit
참고
https://github.com/sqlcipher/sqlcipher/issues/146
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.