2017-09-16 2 views
0

MariaDB의 C/C++ Connector에 대한 레시피를 만들려고합니다.Yocto Project가 파일을 제대로 설치하지 못합니다.

Bitbake 오류 또는 경고없이 작동하지만 내 이미지에있는 파일을 확인하면이없는이 있습니다 :

다른 모두 있습니다

  • libmariadbclient.a
  • libmariadb.so 패키지 (-dev 및 -staticdev)하지만 어떤 이유로 든 내 이미지에 포함되지 않습니다.

    누군가 해결책이 있습니까?

    LICENSE = "BSD" 
    LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ 
           file://win/packaging  /license.rtf;md5=0b6c50a153e2fca0364c97805d74ba50 \ 
           file://cmake/COPYING-CMAKE-SCRIPTS;md5=54c7042be62e169199200bc6477f04d1" 
    
    SRC_URI = "http://mirror2.hs-esslingen.de/mariadb//connector-c-3.0.2/mariadb-connector-c-3.0.2-src.tar.gz;name=source" 
    
    SRC_URI[source.md5sum] = "2eb5ba004ac105eebb538ead352c0c78" 
    SRC_URI[source.md256sum] = "518d14b8d77838370767d73f9bf1674f46232e1a2a34d4195bd38f52a3033758" 
    
    S = "${WORKDIR}/mariadb-connector-c-3.0.2-src" 
    
    DEPENDS = "zlib openssl gnutls krb5 curl" 
    
    PACKAGES =+"${PN}-include" 
    
    FILES_${PN}+="${libdir}/mariadb/libmariadb.so.3 \ 
        ${libdir}/mariadb/plugin/dialog.so \ 
        ${libdir}/mariadb/plugin/mysql_clear_password.so \ 
        ${libdir}/mariadb/plugin/remote_io.so \ 
        ${libdir}/mariadb/plugin/auth_gssapi_client.so \ 
        ${bindir}/mariadb_config" 
    
    FILES_${PN}-dev+="${libdir}/mariadb/libmariadb.so" 
    
    FILES_${PN}-staticdev+="${libdir}/mariadb/libmariadbclient.a" 
    
    FILES_${PN}-include+="${includedir}/mariadb/mariadb_com.h \ 
        ${includedir}/mariadb/mysql.h \ 
        ${includedir}/mariadb/mariadb_stmt.h \ 
        ${includedir}/mariadb/ma_pvio.h \ 
        ${includedir}/mariadb/ma_tls.h \ 
        ${includedir}/mariadb/mariadb_version.h \ 
        ${includedir}/mariadb/ma_list.h \ 
        ${includedir}/mariadb/errmsg.h \ 
        ${includedir}/mariadb/mariadb_dyncol.h \ 
        ${includedir}/mariadb/mariadb_ctype.h \ 
        ${includedir}/mariadb/mysqld_error.h \ 
        ${includedir}/mariadb/mysql/client_plugin.h \ 
        ${includedir}/mariadb/mysql/plugin_auth_common.h \ 
        ${includedir}/mariadb/mysql/plugin_auth.h \ 
        ${includedir}/mariadb/mariadb/ma_io.h " 
    
    RDEPENDS_${PN}+="${PN}-include" 
    
    inherit cmake 
    
    do_compile() { 
        make 
    } 
    
+0

이미지에 다른 패키지가 해당 패키지에 런타임 종속성이 없으므로 이미지에는 포함되지 않습니다. 이미지의 어떤 부분에 해당 파일이 필요하다는 것을 _ 확신합니까? 정적 libs 및 dev 파일은 일반적으로 대상 이미지의 일부가 아닙니다. – jku

+0

그래서'-dev'와'-staticdev' 패키지는 제 이미지에 포함되어 있지 않습니까? 컴파일 할 소스가 있기 때문에 필요합니다. 그들 없이는 오류가 있습니다. 최종 이미지에 어떻게 포함시킬 수 있습니까? 나도 알아, 일반적인 게 아니야 –

+0

당신은 당신의 소스를 당신의 타겟에 컴파일하고 싶다는 것을 정말로 의미합니까? 내 빌드 머신에서 컴파일하는 것을 선호합니다 ... – Anders

답변

2

이미지 만 특정 패키지를 추가, 예를 들어 수행 할 수 있습니다 : 여기

는 제조법 local.conf (또는 이미지 제조법)의 IMAGE_INSTALL_append = " mariadb-dev". 당신이 원하는대로 할 수 없을 정도로 디바이스에서 어떤 것을 컴파일하기를 원하는 것처럼 들린다. (당신은 여전히 ​​모든 개발 툴과 당신이 필요로하는 다른 모든 -dev 패키지를 놓치고있을 것이다.)

나는 이미지 작성을 제안하지 않을 것입니다. (왜 앱 레시피를 작성하지 말고 Yocto가 컴파일과 설치를 처리하도록 하시겠습니까?)하지만 그렇게하고 싶다면 local.conf에 추가해야합니다. :

EXTRA_IMAGE_FEATURES += "dev-pkgs tools-sdk" 

이렇게하면 빌드 도구 (gcc, make 등) 및 모든 -dev 패키지가 이미지에 추가됩니다. 자세한 내용은 the manual을 참조하십시오.

관련 문제