如何在Android.bp中包含我自己构建的共享库

wwwo4jvm  于 2023-08-01  发布在  Android
关注(0)|答案(1)|浏览(304)

我通过这个Android.bp代码编译了我的库:

  1. cc_library_shared {
  2. name: "libult123",
  3. shared_libs: [
  4. "android.hardware.graphics.allocator@3.0",
  5. "android.hardware.graphics.common@1.2",
  6. "android.hardware.graphics.composer@2.4",
  7. "libandroid",
  8. "libbase",
  9. "libbinder",
  10. "libcutils",
  11. "libEGL",
  12. "libGLESv1_CM",
  13. "libGLESv2",
  14. "libgui",
  15. "liblog",
  16. "libnativewindow",
  17. "libprotobuf-cpp-full",
  18. "libsync",
  19. "libtimestats",
  20. "libui",
  21. "libutils",
  22. "libSurfaceFlingerProp",
  23. ],
  24. static_libs: [
  25. "android.hardware.graphics.composer@2.1",
  26. "libglTest",
  27. "libcompositionengine",
  28. "libframetimeline",
  29. "libperfetto_client_experimental",
  30. "librenderengine",
  31. "libserviceutils",
  32. ],
  33. header_libs: [
  34. "libnativewindow_headers",
  35. ],
  36. cflags: [
  37. "-DGL_GLEXT_PROTOTYPES",
  38. "-Wall",
  39. "-Werror",
  40. "-Wno-unused-variable",
  41. ],
  42. //local_src_files: ["ult_lib.h"],
  43. local_include_dirs: ["include"],
  44. export_include_dirs: ["include"],
  45. srcs: ["ult_lib.cpp"],
  46. }

字符串
库目录结构为:

  1. /include/ult_lib.h
  2. /ult_lib.cpp


我想在另一个应用程序C++代码中使用这个libult123库。类似于#include或类似的东西。
请告诉我如何将其包含在当前的Android.bp文件中,以便成功导入此编译库。用于编译第二个应用程序的当前Android.bp文件为:

  1. cc_prebuilt_library_shared {
  2. name: "libult123",
  3. //srcs: ["lib64/libult123.so"],
  4. target: {
  5. android_arm: {
  6. srcs: ["lib/libult123.so"],
  7. },
  8. android_arm64: {
  9. srcs: ["lib64/libult123.so"],
  10. },
  11. },
  12. strip: { none:true, },
  13. }
  14. cc_binary {
  15. name: "ult_pre3",
  16. srcs: [
  17. "test_ult_with_import.cpp"
  18. ],
  19. //gtest: true,
  20. shared_libs: [
  21. //"libult123",
  22. //"abcascsad",
  23. "android.hardware.configstore@1.1",
  24. "android.hardware.graphics.allocator@3.0",
  25. "android.hardware.graphics.common@1.2",
  26. "android.hardware.graphics.composer@2.4",
  27. "libandroid",
  28. "libbase",
  29. "libbinder",
  30. "libcutils",
  31. "libEGL",
  32. "libfmq",
  33. "libGLESv1_CM",
  34. "libGLESv2",
  35. "libgui",
  36. "libhidlbase",
  37. "liblayers_proto",
  38. "liblog",
  39. "libnativewindow",
  40. "libprocessgroup",
  41. "libprotobuf-cpp-full",
  42. "libsync",
  43. "libtimestats",
  44. "libui",
  45. "libinput",
  46. "libutils",
  47. "libSurfaceFlingerProp",
  48. ],
  49. static_libs: [
  50. "android.hardware.graphics.composer@2.1",
  51. "libglTest",
  52. "libcompositionengine",
  53. "libframetimeline",
  54. "libperfetto_client_experimental",
  55. "librenderengine",
  56. "libserviceutils",
  57. ],
  58. header_libs: [
  59. //"libult123",
  60. "libnativewindow_headers",
  61. ],
  62. cflags: [
  63. "-DGL_GLEXT_PROTOTYPES",
  64. "-Wall",
  65. "-Werror",
  66. "-Wno-unused-variable",
  67. ],
  68. }


还尝试:

  1. .......
  2. /*
  3. cc_prebuilt_library_shared {
  4. name: "libult123",
  5. //srcs: ["lib64/libult123.so"],
  6. target: {
  7. android_arm: {
  8. srcs: ["lib/libult123.so"],
  9. },
  10. android_arm64: {
  11. srcs: ["lib64/libult123.so"],
  12. },
  13. },
  14. strip: { none:true, },
  15. }
  16. */
  17. cc_binary {
  18. name: "ult_pre3",
  19. srcs: [
  20. "test_ult_with_import.cpp"
  21. ],
  22. //gtest: true,
  23. shared_libs: [
  24. "libult123",
  25. "android.hardware.configstore-utils",
  26. "android.hardware.configstore@1.0",
  27. .........


我面临的错误:

  1. hardware/intel/external/ult_pre/test_ult_with_import.cpp:27:10: fatal error: 'libult123/ult_lib.h' file not found
  2. #include <libult123/ult_lib.h>
  3. ^~~~~~~~~~~~~~~~~~~~~
  4. 1 error generated.
  5. 17:12:34 ninja failed with: exit status 1

holgip5t

holgip5t1#

使用“cc_library_headers”创建一个库头,并使用“header_libs”包含它。
cc_library_headers { name:“libult123_header”,export_include_dirs:“./include”}
在应用程序构建中,cc_binary {.. snip.. header_libs:[“libult123_header”],.. snip..}

相关问题