想交叉编译一个使用Azure IoT SDK的C应用程序,但不幸的是它需要Cmake。Cmake拒绝构建我的工具链,因为它声称找不到我为目标架构编译的Openssl。
我尝试将
我不断地收到错误提示:
我还尝试将系统变量设置为这些文件夹,但似乎它会忽略它们并提示相同的错误。我也尝试将它添加到与我的C编译器相同的文件夹中,但没有用。我已经尝试了所有能想到的方法,但仍然不明白为什么它不起作用。有任何建议吗?
我尝试将
OPENSSL_ROOT_DIR
添加到它所在的文件夹中。SET(OPENSSL_ROOT_DIR /path/to/openssl)
我不断地收到错误提示:
。
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES) (found
version "1.0.2g")
我还尝试将系统变量设置为这些文件夹,但似乎它会忽略它们并提示相同的错误。我也尝试将它添加到与我的C编译器相同的文件夹中,但没有用。我已经尝试了所有能想到的方法,但仍然不明白为什么它不起作用。有任何建议吗?
/path/to/openssl
。为什么你要尝试将 OPENSSL_ROOT_DIR 变量设置为/path/to/openssl/lib
呢?此外,OPENSSL_INCLUDE_DIR 变量是由find_package(OpenSSL)
调用设置的,请不要手动设置此变量。 - TsyvarevINCLUDE_DIR
,但有版本(1.0.2g
)。这个版本是否与您的OpenSSL安装相对应?在构建目录中的文件CMakeCache.txt
中,查找(通过grep
或类似方式)包含OPENSSL
的条目,并在其中查找包含LIBRARY
的条目。哪些条目具有值NOTFOUND
? - Tsyvarevlib/
目录下。是的,OPENSSL_INCLUDE_DUR
的正确路径是openssl/include
。 - Kagemand AndersenCMAKE_FIND_ROOT_PATH_MODE_
开头的工具链变量有哪些值? - Tsyvarev