为iPhone模拟器编译libssh时出错

时间:2020-06-25 18:35:04

标签: ios cmake ios-simulator libssh

我已经使用类似的参数成功地将最新的master分支编译到Windows,Android和其他平台。但是,当我尝试使用最新的iOS SDK和针对iPhone模拟器的XCode在最新的MacOS Catalina(测试版)上构建时,出现以下错误:

/Users/[USER]/Documents/cpp/libssh/src/buffer.c:158:9: error: implicit declaration of function 'explicit_bzero' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
        explicit_bzero(buffer->data, buffer->allocated);
        ^
/Users/[USER]/Documents/cpp/libssh/src/buffer.c:207:9: error: implicit declaration of function 'explicit_bzero' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
        explicit_bzero(buffer->data, buffer->used);
        ^
/Users/[USER]/Documents/cpp/libssh/src/buffer.c:243:9: error: implicit declaration of function 'explicit_bzero' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
        explicit_bzero(ptr, burn_pos);
        ^
/Users/[USER]/Documents/cpp/libssh/src/buffer.c:268:9: error: implicit declaration of function 'explicit_bzero' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
        explicit_bzero(buffer->data, buffer->allocated);

我使用以下选项配置CMake:

cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=~/Documents/ios-cmake/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_SHARED_LIBS=FALSE -DCMAKE_INSTALL_PREFIX=/usr/local/iossim64 -DCMAKE_SYSTEM_PREFIX_PATH=/usr/local/iossim64 -DWITH_MBEDTLS=TRUE -DWITH_SERVER=FALSE -DWITH_EXAMPLES=FALSE -DWITH_PCAP=FALSE ~/Documents/cpp/libssh

然后构建如下:

cmake --install . --config Debug-iphonesimulator

我使用了类似的参数来编译其他库,但是只有libssh给了我这个错误。我必须使用Mbed TLS,因为我正在创建一个跨平台的应用程序,而在Android上,针对OpenSSL的编译对我不起作用。

0 个答案:

没有答案