Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucas.sardelari

Não é possível encontrar -lOpenCL no Android Studio (Compile Library)

Recommended Posts

Olá
Estou tendo um problema ao compilar uma biblioteca no Android Studio pelo NDK Quando executo o comando ndk-build, um problema é lançado:

 

Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-19.
Android NDK: WARNING: APP_PLATFORM android-19 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-19. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_p
roblems.md for more information.
[arm64-v8a] Compile        : FerrugemLib <= FerrugemLib.c
In file included from jni/FerrugemLib.c:15:
In file included from jni\CL/cl.h:32:
jni\CL/cl_version.h:34:9: warning: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2) [-W#pragma-messages]
#pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
        ^
jni/FerrugemLib.c:346:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jni/FerrugemLib.c:535:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jni/FerrugemLib.c:733:25: warning: 'clCreateCommandQueue' is deprecated [-Wdeprecated-declarations]
        openCLObjects->queue = clCreateCommandQueue(openCLObjects->context, openCLObjects->device, 0, &err);
                               ^
jni\CL/cl.h:1760:72: note: 'clCreateCommandQueue' has been explicitly marked deprecated here
                     cl_int *                       /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
                                                                       ^
jni\CL/cl_platform.h:91:70: note: expanded from macro 'CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED'
        #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated))
                                                                     ^
jni/FerrugemLib.c:839:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jni/FerrugemLib.c:944:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jni/FerrugemLib.c:1977:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jni/FerrugemLib.c:2034:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
8 warnings generated.
[arm64-v8a] SharedLibrary  : libFerrugemLib.so
C:/Android/Sdk/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot find OpenCL: No such file or directory
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [obj/local/arm64-v8a/libFerrugemLib.so] Error 1

Meu Android.mk
LOCAL_PATH := $(call my-dir)
LOCAL_C_INCLUDES += PATH_TO_CL_FOLDER

 

include $(CLEAR_VARS)
LOCAL_MODULE    := decodeYUV420SP
LOCAL_SRC_FILES := decodeYUV420SP.c
LOCAL_LDLIBS    := -llog -ljnigraphics
include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := FerrugemLib
LOCAL_SRC_FILES := FerrugemLib.c
LOCAL_LDLIBS    := -lOpenCL
LOCAL_LDLIBS    += -llog -ljnigraphics
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
include $(BUILD_SHARED_LIBRARY)


APP_OPTIM := debug
LOCAL_CFLAGS := $(call my-dir)

Alguem poderia ajudar em como eu conseguir fazer dar o build com este comando: -lOpenCL

Me propuseram a trocar o -lOpenCL por -framework OpenCL porem sem sucesso.
Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por josenilson
      Olá pessoal !
       
      Estou tentando rodar um projeto de um jogo na minha maquina porem o mesmo pede para adicionar o log4cxx 0.10.0, realizei pesquisas na internet a respeito mas até agora nada, Encontre para baixar nesse site https://logging.apache.org/log4cxx/1.0.0/download.html porem não sei se devo instalar ele no windows porque ao exportar ele no projeto as depêndencias que precisam dele ficam informando o erro log4cxx.logger.h no such file or directory. a linguagem que estou usando e C++
       
       
    • Por pashaa
      Como podem ver a google não aceita mais a SDK da unity ads por motivos da empresa
      Então resolvi remover toda a SDK do meu código. Libs,linhas de comando, tudo. e mesmo assim ainda ela acusa que tenho a sdk dentro do meu app
      Já tenho mais ou menos 1 ano programando em android e nunca tinha visto algo sobre ou esse erro persistir já que tirei tudo de dentro do app
      A minha dúvida é, onde estou errando? Onde deixei alguma coisa sobre essa sdk?Que inclusive coloquei pra teste a uns 5 meses atrás e até tinha esquecido dela kk
      Peço que me ajudem dando sugestões de como remover por completo pois eu praticamente reverti o processo de adicionar a SDK e todo tipo de linha relacionada a unity.ads
       

    • Por Fernando Rafael
      Bom dia, estou baixando arquivos que estão em uma hospedagem própria para serem acessados por um aplicativo que estou desenvolvendo (consigo fazer normalmente utilizando os comandos citado mais a baixo), porém os arquivos ficam salvos na pasta padrão de DOWNLOADS do Android, minha intenção não é ficar acumulando estes arquivos no aparelho, ou esperar que o usuário exclua manualmente, gostaria em salva-los em uma pasta interna do aplicativo para que seja possível excluir automaticamente pelo próprio aplicativo, já tentei como alternativa excluir esses arquivos da pasta DOWNLOADS, mas não consegui...
       
      Segue o código que estou usando para baixar os arquivos, queria adaptar para baixar direto na pasta interna do aplicativo, ou como alternativa caso isso não seja possível, conseguir excluir esses arquivos da pasta DOWNLOADS do Android...
       
      String url = "https://www.site.com/arquivo.pdf"; //Arquivo que vou baixar DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setDescription("Alguma descrição"); request.setTitle("Algum titulo"); //A notificação de conslusão só esta disponível a partir da API 11 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); } //Salvando o arquivo no diretório de Downloads request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "arquivo.pdf"); DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); manager.enqueue(request);  
    • Por Fernando Rafael
      Bom dia, alguém poderia me ajudar com esse problema? 
       
      Estou fazendo um aplicativo bem simples em que sua única função será criar uma pasta no celular (em local acessível pelo gerenciador de arquivos do usuário), e posteriormente copiar arquivos de outro local ou rede e colocar nesta pasta.
       
      Fiz algumas pesquisas, mas por incrível que pareça não encontrei algo que tenha funcionando. Também tenho dúvidas sobre qual seria o equivalente ao "C:/" do Android.
    • Por Sharank
      Strcat Function In C++
       
      I'm new to C and C++ programming, can anyone give me a hint on what I'm doing wrong here. I'm trying to write to concat function that takes to pointers to chars and concatenates the second to the first. The code does do that, but the problem is that it adds a bunch of junk at the end.
       
      For instance, when passing the arguments - "green" and "blue", the output will be "greenblue" plus a bunch of random characters. I also wrote the strlen function that strcat uses, which I will provide below it for reference. I'm using the online compiler at InterviewBit The exact instructions and specification is this:
       
      int main(int argc, char** argv)
      {
      const int MAX = 100;
       
      char s1[MAX];
      char s2[MAX];
       
      cout << "Enter your first string up to 99 characters. ";
      cin.getline(s1, sizeof(s1));
      int size_s1 = strlen(s1);
      cout << "Length of first string is " << size_s1 << "\n";
       
      cout << "Enter your second string up to 99 characters. ";
      cin.getline(s2, sizeof(s2));
      int size_s2 = strlen(s2);
      cout << "Length of second string is " << size_s2 << "\n";
      cout << " Now the first string will be concatenated with the second
      string ";
      char* a = strcat(s1,s2);
       
      for(int i = 0; i<MAX; i++)
      cout <<a;
       
      // system("pause");
      return 0;
      }
       
      //strcat function to contatenate two strings
      char* strcat(char *__s1, const char *__s2)
      {
      int indexOfs1 = strlen(__s1);
      int s2L = strlen(__s2);
      cout <<s2L << "\n";
      int indexOfs2 = 0;
      do{
      __s1[indexOfs1] = __s2[indexOfs2];
      indexOfs1++;
      indexOfs2++;
      }while(indexOfs2 < s2L);
       
       
      return __s1;
      }
       
      //Returns length of char array
      size_t strlen(const char *__s)
      {
      int count = 0;
      int i;
      for (i = 0; __s != '\0'; i++)
      count++;
      return (count) / sizeof(__s[0]);
       
      }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.