【发布时间】:2020-01-21 08:50:41
【问题描述】:
我有一个需要使用 cmake 编译的 openssl 的应用程序。稳定的 AIX 7.1 cmake 版本是 3.14.3
在 cmake 构建文件中我有以下测试
include(CheckCSourceCompiles)
check_c_source_compiles(check_openssl.c HAS_NEW_ENOUGH_OPENSSL)
check_openssl.c
#include <stdio.h>
#include "/usr/local/include/openssl/ossl_type.h"
#include "/usr/local/include/openssl/evp.h"
int main(int argc, char **argv){
printf("out = %d", !EVP_aes_256_ctr);
return !EVP_aes_256_ctr;
}
gcc 编译完全没有问题,并且注释按预期打印出来。但是,当我使用 cmake 测试它时出现编译错误。
更新 1:
遵循@squareskittles 的回答并将 cmake 升级到 3.15.0(从 AIX 中的源代码构建)后,我仍然一无所获。我收到的唯一错误消息是-- Performing Test HAS_NEW_ENOUGH_OPENSSL - Failed
至于我用于构建的命令
cmake -DJVM_ARCH_DATA_MODEL=64 -DUSE64bit=true -G "Unix Makefiles"
【问题讨论】:
-
您是否收到任何错误消息,或者只是 不起作用?(注意:它实际上是 AIX3 吗?那么您的硬件现在已经 20 多年了,是不是吗?)
-
我的错误是没有更清楚。至于错误信息,我没有得到任何信息
-
好的。你究竟尝试了什么命令,你得到了什么结果?什么都没发生?
-
"当我使用 cmake 测试时出现编译错误。" - 显示该错误(将其添加到问题帖子中)。
-
@CandyHo 您的 C 代码需要inline 放在您的 CMake 文件中,用引号括起来。请参阅我的扩展答案。