• 〖Android〗CM10.2编译错误解决


    错误1:

    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp: In function 'int android::hdmi_gl_set_param(int, int, int, int, unsigned int, unsigned int, int, int, int, int, int)':
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1689:92: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1689:92: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1689:92: error: no match for 'operator=' in 'srcAddr = {(addr_space)1u, ((long unsigned int)src_y_address), ((src_w * src_h) * 4), 1, 0}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1689:92: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:230:8: note: fimg2d_addr& fimg2d_addr::operator=(const fimg2d_addr&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:230:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_addr&'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1690:82: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1690:82: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1690:82: error: no match for 'operator=' in 'srcImage = {srcAddr, srcAddr, src_w, src_h, (src_w * 4), (pixel_order)0u, (color_format)1u}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1690:82: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:280:8: note: fimg2d_image& fimg2d_image::operator=(const fimg2d_image&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:280:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_image&'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1691:38: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1691:38: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1693:93: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1693:93: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1693:93: error: no match for 'operator=' in 'dstAddr = {(addr_space)1u, ((long unsigned int)dst_addr), ((dst_w * dst_h) * dst_bpp), 1, 0}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1693:93: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:230:8: note: fimg2d_addr& fimg2d_addr::operator=(const fimg2d_addr&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:230:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_addr&'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1694:106: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1694:106: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1694:106: error: no match for 'operator=' in 'dstImage = {dstAddr, dstAddr, dst_w, dst_h, (dst_w * dst_bpp), (pixel_order)0u, ((color_format)dst_color_format)}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1694:106: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:280:8: note: fimg2d_image& fimg2d_image::operator=(const fimg2d_image&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:280:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_image&'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1695:38: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1695:38: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1696:41: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1696:41: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1699:90: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1699:90: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1699:90: error: no match for 'operator=' in 'Scaling = {(scaling)2u, (scaling_factor)0u, 0, 0, src_w, src_h, dst_w, dst_h}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1699:90: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:245:8: note: fimg2d_scale& fimg2d_scale::operator=(const fimg2d_scale&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:245:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_scale&'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1701:90: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1701:90: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1701:90: error: no match for 'operator=' in 'Scaling = {(scaling)2u, (scaling_factor)0u, 0, 0, src_w, src_h, dst_h, dst_w}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1701:90: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:245:8: note: fimg2d_scale& fimg2d_scale::operator=(const fimg2d_scale&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:245:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_scale&'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1722:161: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1722:161: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1722:161: error: no match for 'operator=' in 'BlitParam = {(blit_op)2u, (premultiplied)1u, 255, 0, g2d_rotation, (& Scaling), 0, 0, (& dstClip), 0, (& srcImage), (& dstImage), 0, (& srcRect), (& dstRect), 0, 0}'
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:1722:161: note: candidate is:
    In file included from hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp:42:0:
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:327:8: note: fimg2d_blit& fimg2d_blit::operator=(const fimg2d_blit&)
    hardware/samsung/exynos4/hal/libhdmi/SecHdmi/../../include/sec_g2d_4x.h:327:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const fimg2d_blit&'
    make: *** [/media/Enjoy/AndroidCode/cm10.2/out/target/product/stuttgart/obj/SHARED_LIBRARIES/libhdmi_intermediates/SecHdmiV4L2Utils.o] Error 1
    make: *** Waiting for unfinished jobs....

    解决:

    diff --git a/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp b/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp
    index f3ae1ac..b103acb 100644
    --- a/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp
    +++ b/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp
    @@ -1494,13 +1494,13 @@ int hdmi_set_g_scaling(int layer,
             cur_g2d_address = (unsigned int)dst_addr;
             prev_src_addr = src_address;
     
    -        srcAddr = {(addr_space)ADDR_USER, (unsigned long)src_address, src_w * src_h * 4, 1, 0};
    -        srcImage = {srcAddr, srcAddr, src_w, src_h, src_w*4, AX_RGB, CF_ARGB_8888};
             srcRect = {0, 0, src_w, src_h};
    -
    -        dstAddr = {(addr_space)ADDR_USER, (unsigned long)dst_addr, dst_w * dst_h * dst_bpp, 1, 0};
    -        dstImage = {dstAddr, dstAddr, dst_w, dst_h, dst_w*dst_bpp, AX_RGB, (color_format)dst_color_format};
             dstRect = {0, 0, dst_w, dst_h};
    +
    +        srcAddr = {(addr_space)ADDR_USER, (unsigned long)src_address};
    +        srcImage = { src_w, src_h, src_w*4, AX_RGB, CF_ARGB_8888, srcAddr, srcAddr, srcRect, false };
    +        dstAddr = {(addr_space)ADDR_USER, (unsigned long)dst_addr};
    +        dstImage = { dst_w, dst_h, dst_w*dst_bpp, AX_RGB, (color_format)dst_color_format, dstAddr, dstAddr, dstRect, false};
             dstClip = {0, 0, 0, dst_w, dst_h};
     
             if (rotVal == 0 || rotVal == 180)
    @@ -1686,19 +1686,20 @@ int hdmi_gl_set_param(int layer,
             cur_g2d_address = (unsigned int)dst_addr;
             prev_src_addr = src_y_address;
     
    -        srcAddr = {(addr_space)ADDR_PHYS, (unsigned long)src_y_address, src_w*src_h*4, 1, 0};
    -        srcImage = {srcAddr, srcAddr, src_w, src_h, src_w*4, AX_RGB, CF_ARGB_8888};
             srcRect = {0, 0, src_w, src_h};
    -
    -        dstAddr = {(addr_space)ADDR_PHYS, (unsigned long)dst_addr, dst_w*dst_h*dst_bpp, 1, 0};
    -        dstImage = {dstAddr, dstAddr, dst_w, dst_h, dst_w*dst_bpp, AX_RGB, (color_format)dst_color_format};
             dstRect = {0, 0, dst_w, dst_h};
    +
    +        srcAddr = {(addr_space)ADDR_USER, (unsigned long)src_y_address};
    +        srcImage = { src_w, src_h, src_w*4, AX_RGB, CF_ARGB_8888, srcAddr, srcAddr, srcRect, false };
    +        dstAddr = {(addr_space)ADDR_USER, (unsigned long)dst_addr};
    +        dstImage = { dst_w, dst_h, dst_w*dst_bpp, AX_RGB, (color_format)dst_color_format, dstAddr, dstAddr, dstRect, false};
    +
             dstClip = {0, 0, 0, dst_w, dst_h};
     
             if (rotVal == 0 || rotVal == 180)
    -            Scaling = {SCALING_BILINEAR, SCALING_PIXELS, 0, 0, src_w, src_h, dst_w, dst_h};
    +            Scaling = {SCALING_BILINEAR, src_w, src_h, dst_w, dst_h};
             else
    -            Scaling = {SCALING_BILINEAR, SCALING_PIXELS, 0, 0, src_w, src_h, dst_h, dst_w};
    +            Scaling = {SCALING_BILINEAR, src_w, src_h, dst_h, dst_w};
     
             switch (rotVal) {
             case 0:
    @@ -1718,9 +1719,9 @@ int hdmi_gl_set_param(int layer,
                 return -1;
                 break;
             }
    -
    -        BlitParam = {BLIT_OP_SRC, NON_PREMULTIPLIED, 0xff, 0, g2d_rotation, &Scaling, 0, 0, &dstClip, 0, &srcImage, &dstImage, NULL, &srcRect, &dstRect, NULL, 0};
    -
    +       struct fimg2d_param param;
    +       param = {0, 0xff, 0, g2d_rotation, NON_PREMULTIPLIED, &scaling, 0, 0, &dstClip};
    +       BlitParam = { BLIT_OP_SRC, param, &srcImage, NULL, NULL, &dstImage, BLIT_SYNC, 0};
             if (stretchFimgApi(&BlitParam) < 0) {
                 ALOGE("%s::stretchFimgApi() fail", __func__);
                 return -1;
    diff --git a/exynos4/hal/libhdmi/libhdmiservice/SecHdmiClient.h b/exynos4/hal/libhdmi/libhdmiservice/SecHdmiClient.h
    index ebee763..6785821 100644
    --- a/exynos4/hal/libhdmi/libhdmiservice/SecHdmiClient.h
    +++ b/exynos4/hal/libhdmi/libhdmiservice/SecHdmiClient.h
    @@ -34,8 +34,8 @@
     #include <cutils/log.h>
     #include <binder/IBinder.h>
     #include <binder/IServiceManager.h>
    -#include <surfaceflinger/ISurfaceComposer.h>
    -#include <surfaceflinger/SurfaceComposerClient.h>
    +#include <gui/ISurfaceComposer.h>
    +#include <gui/SurfaceComposerClient.h>
     #include "ISecTVOut.h"
     
     #define GETSERVICETIMEOUT (5)
  • 相关阅读:
    前端JS 4
    前端JS 3
    前端JS 2
    前端JS 1
    JS的知识补丁
    去除inline-block元素间的空隙
    js中“||”和“&&”的高级用法
    WebAPP-1
    Node.js_1
    click和onclick的区别
  • 原文地址:https://www.cnblogs.com/scue/p/3221946.html
Copyright © 2020-2023  润新知