openssl/ssl.h,No such file or directory

最近要在 android 上作一個 openssl 項目,使用 JNI ,結果 C 程序老是找不到一大堆 .h文件,因此,想到先在 Xcode 上試試,結果也是一大堆紅牌錯誤,例如:openssl/ssl.h,提示 No such file or directory 等待 Xcode 這邊正確了,再去對付android studio上的 NDK,JNI 之類android

一、安裝xcode命令行工具

xcode-select --install
已經安裝了,xcode-select: error: command line tools are already installed, use "Software Update" to install updates

二、找到 Xcode 的 include 目錄

xcode-select -p

獲得安裝目錄

/Applications/Xcode.app/Contents/Developer

進入 開發平臺對應目錄

cd /Applications/Xcode.app/Contents/Developer
dhbmdeMacBook-Pro:Developer dhbm$ ls
    Applications    Makefiles    Toolchains    usr
    Library        Platforms    Tools

進入 Platforms 目錄

dhbmdeMacBook-Pro:Developer dhbm$ cd Platforms
dhbmdeMacBook-Pro:Platforms dhbm$ ls
    AppleTVOS.platform        WatchSimulator.platform
    AppleTVSimulator.platform    iPhoneOS.platform
    MacOSX.platform            iPhoneSimulator.platform
    WatchOS.platform

三、我使用了 macOS 下的 Command Line Tool (命令行項目),因此到 MacOSX.platform

dhbmdeMacBook-Pro:Platforms dhbm$ cd MacOSX.platform
dhbmdeMacBook-Pro:MacOSX.platform dhbm$ ls
    Developer        ResourceRules.plist    usr
    Entitlements.plist    _CodeSignature        version.plist
    Info.plist        macOS.icns

進入 Developer 目錄

cd Developer
dhbmdeMacBook-Pro:Developer dhbm$ ls
Library    SDKs    usr

進入 SDKs 目錄

cd SDKs
dhbmdeMacBook-Pro:SDKs dhbm$ ls
    MacOSX.sdk    MacOSX10.13.sdk

進入 MacOSX10.13.sdk 目錄

cd MacOSX10.13.sdk
dhbmdeMacBook-Pro:MacOSX10.13.sdk dhbm$ ls
    SDKSettings.plist    System            usr

進入 usr 目錄

cd usr
dhbmdeMacBook-Pro:usr dhbm$ ls
    bin    include    lib    share

進入 include 目錄,找找有沒有 openssl 目錄,沒有的話 mkdir

find . -name openssl
    ./openssl
    (我建立以後記錄的,因此,該目錄已經存在了)

四、完整的路徑是,我不熟練,因此,一步一步的走進來的

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include

五、再開一個Terminal,找到系統安裝的 openssl 以及 include 目錄

戍邊記錄一下查看macod 版本號命令

sw_vers
    ProductName:    Mac OS X
    ProductVersion:    10.13.1
    BuildVersion:    17B48

uname
    Darwin

查看 openssl 版本

openssl version
    OpenSSL 1.0.2n  7 Dec 2017

找到 openssl 的 include

cd /usr/local/Cellar/openssl/1.0.2n/include

六、copy openssl 目錄到 Xcode 的開發目錄

確認一下當前目錄

pwd
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include

copy過來 openssl 目錄

sudo cp -R /usr/local/Cellar/openssl/1.0.2n/include/openssl openssl

再次打開剛纔創建的項目,發現 copy 過來的 ssl.h 裏面沒有紅牌錯誤了!

創建項目時,我直接把 /usr/local/Cellar/openssl/1.0.2n/include/openssl 添加到了個人項目(add files to XXX) 先記錄下來以上過程,後續待補充xcode

相關文章
相關標籤/搜索