Gradle Native C项目:头文件未包含在具有相对路径的另一个头文件中

时间:2018-05-08 19:20:00

标签: c gradle compilation

我正在尝试将第三方SDK(用c编写)集成到我的本机C Gradle应用程序中。我在SDK中的其他标题内遇到#includes的问题。

如果我使用eclipse构建工具编译,一切都很好地编译

然而,当我将所有内容移动到Gradle时(由于构建中其他步骤的灵活性)...我无法弄清楚为什么找不到从另一个.h引用的.h文件。 (注意这是由父项目构建的)

SDK中的所有路径都是相对于SDK的根目录

据我了解,所有头文件都将在以下脚本块中指定

exportedHeaders {
        srcDirs  { <headers in here> }
} 

我有以下目录结构

/ts3
  /include
  /lib
      /include
           /teamlog
               - logtypes.h
           /teamspeak
               - public_definitions.h
  /src
     -HelloWorld 

的build.gradle

apply plugin: 'c'
    model {
        platforms {
         x64 {
            architecture "x86_64"
             }
        }

        components {
            tada(NativeLibrarySpec){
                 targetPlatform "x64"
                  sources {
                     c {
                        source {            
                            srcDirs "src"
                            include "*.c"
                        }
                         exportedHeaders {
                           srcDirs  "include",
                                "C:\\Program Files\\Java\\jdk1.8.0_162\\include",
                                "C:\\Program Files\\Java\\jdk1.8.0_162\\include\\win32",
                                "lib\\ts3_sdk_3.0.4\\include\\teamspeak"            
                       }            
                    }
                }
            }
        }
    }     

在Windows 10上编译后,我收到以下错误

ts3\lib\ts3_sdk_3.0.4\include\teamspeak\public_definitions.h(4): fatal error C1083: Cannot open include file: '../../../../ts3_sdk_3.0.4/include/teamlog/logtypes.h': No such file or directory

0 个答案:

没有答案