Tôi đang cố gắng nhập openssl vào dự án nhanh chóng của mình, nhưng khi tôi thêm #import "ras.h"
vào số xxx-Bridging-Header.h
, tôi nhận được lỗi biên dịch bên dưới.lỗi biên dịch với khai báo con trỏ hàm
<unknown>:0: error: /Users/wenyun/workspace/newsvn/newios/ios/VanJoyPay2/VanJoyPay2/opensource/OpenSSLRSAWrapper/openssl/include/openssl/rsa.h:100: expected ')'
<unknown>:0: note: /Users/wenyun/workspace/newsvn/newios/ios/VanJoyPay2/VanJoyPay2/opensource/OpenSSLRSAWrapper/o penssl/include/openssl/rsa.h:100: to match this '('
Các ras.h: 100 là:
int (*rsa_mod_exp)(BIGNUM *r0,const BIGNUM *I,RSA *rsa,BN_CTX *ctx); /* Can be null */
Tôi cố định các lỗi bằng cách đổi tên các const BIGNUM *I
-const BIGNUM *i
. Có ai biết tại sao nhân vật I
thật đặc biệt?
Tôi đã làm một thử nghiệm khác ngày hôm nay, kết quả trông rất kỳ quặc. Tôi đã tạo một dự án nhanh mới, đã viết 3 tệp tiêu đề:
test.h
int test(char *I);
test2.h
#import "test3.h"
#import <Foundation/Foundation.h>
test3.h
int test3();
xxx-Bridging-Header.h
#import "test2.h"
#import "test.h"
Tôi đã gặp lỗi biên dịch một lần nữa!
cuối cùng, xóa "#import" làm mọi thứ ổn.
Why the character "I" could not work together with #import <xxx>?
này trông lẻ (chú ý thêm không gian ở giữa các chữ cái của OpenSSL): '.../OpenSSLRSAWrapper/o penssl/include/.. .'. – jww
điều này trông giống như ai đó '#define I' ở đâu đó, bạn có thể kiểm tra kết quả từ bộ tiền xử lý để xem điều gì đã xảy ra –
Chúng tôi có thể sử dụng' #undef I' để xóa định nghĩa. –