2015-12-27 89 views
5

我創建了我自己的包裝dylib。然後我創建了一個頭文件來從這個庫中導出符號。我遇到了這個頭文件在包裝器中的情況,並且modulemap找不到它。ModuleMap的路徑分辨率

> MyFramework (project directory) 

    > MyFramework.xcconfig 

    MODULEMAP_FILE[sdk=macosx*] = $(SRCROOT)/MyFramework/macosx.modulemap 


    > macosx.modulemap: 

    module MyFramework [system] { 
     header "MyFramework.h"  // CAN NOT FIND THE FILE 
     export * 
    } 

    > MyFramwork.h (contains a bunch of declarations) 

我發現在SDK中指向絕對路徑的例子,但我真的不想硬編碼在我的本地驅動器上的路徑到我的項目。

我試着用$(SRCROOT)/ MyFramework和其他相關選項爲前綴加上文件名,但沒有運氣。

我應該用什麼來代替?

+0

你試過'module/module.modulemap'或在你的情況macosx.modulemap? –

回答

2

clang module documentation中可以找到Module Maps的文檔。特別是Mac OS X框架有一個framework關鍵字。所以你應該使用

framework module MyFramework [system] { 
    header "MyFramework.h" 
    export * 
}