2015-12-27 90 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 * 
}