Я пытаюсь интегрировать сторонний SDK (написанный на c) в мое родное приложение C Gradle. У меня проблемы с #includes
из других заголовков в SDK.
Если я компилирую, используя инструменты сборки 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