【问题标题】:Set library path when configuring/building OpenSSL在配置/构建 OpenSSL 时设置库路径
【发布时间】:2020-10-04 23:55:28
【问题描述】:

我正在尝试使用 Dockcross 交叉编译适用于 Android 的 OpenSSL。似乎 Dockcross 是为 CMake 配置的,所以我需要自己设置一些变量(我想看看是否可以为这个用例更新 dockcross)。

我设法运行./Configure如下:

ANDROID_NDK=/usr/aarch64-linux-android PATH=${PATH}:/usr/aarch64-linux-android/bin CC=clang \
CPPINCLUDES=/usr/aarch64-linux-android/sysroot/usr/include ./Configure android-arm64 no-shared

然后我运行make:

PATH=${PATH}:/usr/aarch64-linux-android/bin make

我收到以下错误:

/usr/aarch64-linux-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin /ld: 找不到 crtbegin_so.o: 没有这样的文件或目录

除其他外,我必须设置CPPINCLUDES,我找到了here,我看到它出现在构建输出中(-I/usr/aarch64-linux-android/sysroot/usr/include)。另外,缺少的crtbegin_so.o/usr/aarch64-linux-android/sysroot/usr/lib 中,但我找不到指定该路径的方法。

我在./Configure 脚本中尝试了LDFLAGSLDLIBSLIBRARY_PATH,但似乎没有任何效果。

我应该如何设置?

【问题讨论】:

    标签: openssl


    【解决方案1】:

    所以实际上,我应该从一开始就设置sysroot。我错过了它,因为它记录在较旧的 ./configure 脚本中,但我没有看到它记录在较新的 ./Configure 中,尽管它有效:

    ANDROID_NDK=/usr/aarch64-linux-android PATH=${PATH}:/usr/aarch64-linux-android/bin CC=clang ./Configure --sysroot /usr/aarch64-linux-android/sysroot android-arm64 --prefix=${CMAKE_INSTALL_PREFIX} no-shared
    

    我相信ANDROID_NDK 可以直接由dockcross 设置,也可以是PATH。不知道这里有没有办法绕过CC=clang

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 2013-02-27
      • 2023-03-04
      相关资源
      最近更新 更多