我已经使用类似的参数成功地将最新的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的编译对我不起作用。