繁体   English   中英

找不到架构 x86_64、macOS Sierra

[英]not found for architecture x86_64, macOS Sierra

背景:

是的,我知道使用 Brew 非常容易! 已经测试和工作!

现在我正在试验MacOS Sierra ,并安装启用 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$

根据这个:

编译一些简单的 C++ 代码时出错

ld:找不到架构 x86_64 的符号,clang:链接器命令失败

ld:找不到架构 x86_64 (libusb) 的符号

我已经不明白了......我需要通过c++clang++或类似的方式更改gccclang

但是,我没有使用xcode应用程序,只有终端:

  • sudo ./configure ...
  • sudo make
  • sudo make install

必须在哪里改?

如何?

也许我需要编辑一些文件,哪个文件?

怎么算的?

谢谢!

对于您的情况,不需要编辑或更改文件。

$ 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 ,根据解决方案找到它,您不能使用空格来分配值标志。

嗨,我在以下方面遇到了类似的问题: httpd(2.4.25), openssl(1.0.2k) - 无法在 macOS Sierra 中编译 make 时出错:体系结构 x86_64 的未定义符号:“_CRYPTO_malloc_init”

我在 apr-util-1.5.4 上安装了正确的版本并配置了启用加密的 openssl:

./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 构建:

./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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM