我正在尝试将第三方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