2017-01-04 8 views
3

背景:アーキテクチャx86_64で見つかりません、MacOSのシエラ

はい、私はそれが醸造を使用して非常に簡単です知っています!すでにテストして動作します!

今私はMacOSのシエラで実験、およびOpenSSLを有効にするのhttpd-2.4.25.tar.gzをインストールしています。

私はを経験していません。Xcode

$ openssl version 
OpenSSL 1.1.0c 10 Nov 2016 
$ 

$ which openssl 
/usr/bin/openssl 
$ 

$ cd /etc/ServerWeb/httpd 
$ sudo ./configure --prefix=/usr/local/ServerWeb/httpd --enable-deflate --enable-so --enable-expires --enable-headers --enable-rewrite --with-apr=/etc/ServerWeb/httpd/srclib/apr --with-apr-util=/etc/ServerWeb/httpd/srclib/apr-util -with-pcre=/etc/pcre --with-z=/usr/include/zlib --enable-ssl --with-ssl=/etc/openssl 

私が実行します。

$ sudo make 

私はこのエラーを取得します!

/etc/ServerWeb/httpd/srclib/apr/build-1/libtool --silent --mode=compile gcc -I/etc/openssl/include -g -O2  -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 \ 
     -I. -I/private/etc/httpd-2.4.25/os/unix -I/private/etc/httpd-2.4.25/include -I/etc/ServerWeb/httpd/srclib/apr/include/apr-1 -I/private/etc/apr-util-1.5.4/include -I/usr/local/Cellar/pcre/8.39/include -I/private/etc/httpd-2.4.25/modules/aaa -I/private/etc/httpd-2.4.25/modules/cache -I/private/etc/httpd-2.4.25/modules/core -I/private/etc/httpd-2.4.25/modules/database -I/private/etc/httpd-2.4.25/modules/filters -I/private/etc/httpd-2.4.25/modules/ldap -I/private/etc/httpd-2.4.25/modules/loggers -I/private/etc/httpd-2.4.25/modules/lua -I/private/etc/httpd-2.4.25/modules/proxy -I/private/etc/httpd-2.4.25/modules/session -I/private/etc/httpd-2.4.25/modules/ssl -I/private/etc/httpd-2.4.25/modules/test -I/private/etc/httpd-2.4.25/server -I/private/etc/httpd-2.4.25/modules/arch/unix -I/private/etc/httpd-2.4.25/modules/dav/main -I/private/etc/httpd-2.4.25/modules/generators -I/private/etc/httpd-2.4.25/modules/mappers -prefer-non-pic -static -c ab.c && touch ab.lo 
ab.c:2398:28: warning: implicit declaration of function 'SSLv2_client_method' is invalid in C99 [-Wimplicit-function-declaration] 
        meth = SSLv2_client_method(); 
         ^
ab.c:2398:26: warning: incompatible integer to pointer conversion assigning to 'const SSL_METHOD *' (aka 'const struct ssl_method_st *') from 'int' [-Wint-conversion] 
        meth = SSLv2_client_method(); 
         ^~~~~~~~~~~~~~~~~~~~~~ 
ab.c:2412:28: warning: 'TLSv1_1_client_method' is deprecated [-Wdeprecated-declarations] 
        meth = TLSv1_1_client_method(); 
         ^
/etc/openssl/include/openssl/ssl.h:1604:45: note: 'TLSv1_1_client_method' has been explicitly marked deprecated here 
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */ 
              ^
ab.c:2414:28: warning: 'TLSv1_2_client_method' is deprecated [-Wdeprecated-declarations] 
        meth = TLSv1_2_client_method(); 
         ^
/etc/openssl/include/openssl/ssl.h:1610:45: note: 'TLSv1_2_client_method' has been explicitly marked deprecated here 
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ 
              ^
ab.c:2417:28: warning: 'TLSv1_client_method' is deprecated [-Wdeprecated-declarations] 
        meth = TLSv1_client_method(); 
         ^
/etc/openssl/include/openssl/ssl.h:1598:45: note: 'TLSv1_client_method' has been explicitly marked deprecated here 
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */ 
              ^
ab.c:2468:5: warning: implicit declaration of function 'CRYPTO_malloc_init' is invalid in C99 [-Wimplicit-function-declaration] 
    CRYPTO_malloc_init(); 
    ^
6 warnings generated. 
/etc/ServerWeb/httpd/srclib/apr/build-1/libtool --silent --mode=link gcc -g -O2 -L/etc/openssl/lib -lssl -lcrypto -lpthread \ 
      -o ab ab.lo  /private/etc/apr-util-1.5.4/libaprutil-1.la -lexpat -liconv /etc/ServerWeb/httpd/srclib/apr/lib/libapr-1.la -lpthread 
Undefined symbols for architecture x86_64: 
"_CRYPTO_malloc_init", referenced from: 
    _main in ab.o 
"_SSLv2_client_method", referenced from: 
    _main in ab.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[2]: *** [ab] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all-recursive] Error 1 
jb-MacBook:httpd jb$ 

これによると、すでに

Error when compiling some simple c++ code

ld: symbols not found for architecture x86_64, clang: linker command failed

ld: symbol(s) not found for architecture x86_64 (libusb)

私はunterstood ...私はclang++または類似でc++clanggccを変更する必要があります。

しかし、私は、と端末のみxcodeアプリを使用していないよ:

それを変更しなければなりません
  • sudo ./configure ...
  • sudo make
  • sudo make install

を?

どのようにですか?

多分私はいくつかのファイルを編集する必要がありますどのファイルですか?

どのようにわかりますか?

ありがとうございました!

答えて

0

あなたの場合、ファイルを編集または変更する必要はありません。

$ cd /etc/ServerWeb/httpd 
$ sudo ./configure --prefix=/usr/local/ServerWeb/httpd --enable-deflate --enable-so --enable-expires --enable-headers --enable-rewrite --with-apr=/etc/ServerWeb/httpd/srclib/apr --with-apr-util=/etc/ServerWeb/httpd/srclib/apr-util -with-pcre=/etc/pcre --with-z=/usr/include/zlib --enable-ssl --with-ssl=/etc/openssl 
$ 

あなたがあなたのケースのためにCC

例フラグを使用する必要がありますコンパイラ変更する:解決策はそれを見つけるよると、

$ sudo CC=clang ./configure --prefix=/usr/local/ServerWeb/httpd --enable-deflate --enable-so --enable-expires --enable-headers --enable-rewrite --with-apr=/etc/ServerWeb/httpd/srclib/apr --with-apr-util=/etc/ServerWeb/httpd/srclib/apr-util -with-pcre=/etc/pcre --with-z=/usr/include/zlib --enable-ssl --with-ssl=/etc/openssl 
$ 

またはCC=gccを、あなたは何の使用スペース値フラグを割り当ててはなりません。

0

こんにちは私は同様の問題を持っていた:私は4月-utilの-1.5.4の正しいバージョンをインストールし、OpenSSLを有効にする暗号を使用して構成 httpd(2.4.25), openssl(1.0.2k) - Cannot compile in macOS Sierra Error on make: Undefined symbols for architecture x86_64: "_CRYPTO_malloc_init"

./configure --prefix=/usr/local/mac-dev-env/apr-util-1.5.4 --with-apr=/usr/local/mac-dev-env/apr-1.5.2 --with-openssl=/usr/local/mac-dev-env/openssl-1.0.2k --with-crypto 

そのApacheのビルドを構成しwith:

./configure --prefix=/usr/local/mac-dev-env/apache-2.4.25 --enable-so --enable-ssl --with-ssl=/usr/local/mac-dev-env/openssl-1.0.2k --with-apr=/usr/local/apr --with-apr-util=/usr/local/mac-dev-env/apr-util-1.5.4 --with-ldap 
関連する問題