J'essaie de construire Openblas-0.3.5 avec Yocto (Rocko) pour mon armv8-A 64 bits. J'ai trouvé cette recette en ligne et je l'ai modifié un peu. Mais j'ai eu l'erreur suivante:
ci-dessous est mon fichier openblas.bb: p> FILES_${PN} += "/opt/${PN}"
FILES_${PN}-dev += "/opt/${PN}/lib/lib${PN}.so"
#FILES_${PN}-dbg += "/opt/${PN}/lib/.debug"
3 Réponses :
Le long do_install code> doit réussir le correct
$ {libdi} code> car le makefile suppose que
$ préfixe / lib code> est correct quand pour votre plate-forme n'est pas. p>
préfixe code> passe également
openblas_library_dir = $ {libdi} code>. p>.
Salut Ross, j'ai essayé ça et ça n'a pas fonctionné. Obtenu les mêmes erreurs. Je l'ai construit avec succès maintenant. Merci.
J'utilise cette lib, j'utilise cette recette:
Cette recette est pour armv7. Même pour moi, Openblas a travaillé sur mon conseil d'armv7. Mais je reçois des problèmes sur mon armv8. Openblas est construit maintenant. Ce que j'ai fait, c'était changer la cible en armv8 et binaire à 64. Puis j'ai créé, Lib64 Dossier dans mon image OpenBlas, sous USR. Ensuite, j'ai copié, contenu de USR / LIB en usr / lib64. De plus, je devais donner ceci pour do_package question - rdepends _ $ {pn} -dev = "" "rdepends _ $ {pn} -staticDev =" "Fichiers _ $ {pn} -libs =" $ {libdi} / * "Fichiers _ $ {pn} + =" / usr / lib64 "fichiers _ $ {pn} -dev =" $ {inclusir} $ {libdi} / libdir} .so " code>
Recette pour ARMV8
DESCRIPTION = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." SUMMARY = "OpenBLAS : An optimized BLAS library" AUTHOR = "Alexander Leiva <norxander@gmail.com>" HOMEPAGE = "http://www.openblas.net/" SECTION = "libs" LICENSE = "BSD-3-Clause" RDEPENDS_${PN} += "libgfortran" DEPENDS += " make libgfortran" LIC_FILES_CHKSUM = "file://LICENSE;md5=5adf4792c949a00013ce25d476a2abc0" SRC_URI = "https://github.com/xianyi/OpenBLAS/archive/v${PV}.tar.gz" SRC_URI[md5sum] = "48637eb29f5b492b91459175dcc574b1" SRC_URI[sha256sum] = "5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394" S = "${WORKDIR}/OpenBLAS-${PV}" FLOATABI = "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", " -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}" def map_arch(a, d): import re if re.match('i.86$', a): return 'ATOM' elif re.match('x86_64$', a): return 'ATOM' elif re.match('aarch32$', a): return 'ARMV7' elif re.match('aarch64$', a): return 'ARMV8' return a def map_bits(a, d): import re if re.match('i.86$', a): return 32 elif re.match('x86_64$', a): return 64 elif re.match('aarch32$', a): return 32 elif re.match('aarch64$', a): return 64 return 64 do_compile () { oe_runmake HOSTCC="${BUILD_CC} " \ CC="${TARGET_PREFIX}gcc ${FLOATABI} ${TOOLCHAIN_OPTIONS}" \ PREFIX=${exec_prefix} \ CROSS_SUFFIX=${HOST_PREFIX} \ ONLY_CBLAS=1 BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \ TARGET='ARMV8' } do_install() { install -d ${D}${libdir} install -d ${D}${libdir}/cmake install -d ${D}${libdir}/pkgconfig oe_runmake HOSTCC="${BUILD_CC}" \ CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \ PREFIX=${exec_prefix} \ CROSS_SUFFIX=${HOST_PREFIX} \ ONLY_CBLAS=1 BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \ TARGET='${@map_arch(d.getVar('TARGET_ARCH', True), d)}' \ DESTDIR=${D} \ install cp -r ${D}/usr/lib/* ${D}/usr/lib64/ rm -rf ${D}/usr/lib rm -rf ${D}/usr/bin } RDEPENDS_${PN}-dev = "" RDEPENDS_${PN}-staticdev = "" FILES_${PN}-libs = "${libdir}/*" FILES_${PN} += "/usr/lib64" FILES_${PN}-dev = "${includedir} ${libdir}/lib${PN}.so" INSANE_SKIP_${PN} += "staticdev"
Changer
préfixe = $ {d} / usr code> dans do_install ()