{"id":15050,"date":"2024-12-04T17:54:56","date_gmt":"2024-12-04T09:54:56","guid":{"rendered":"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050"},"modified":"2024-12-05T09:46:55","modified_gmt":"2024-12-05T01:46:55","slug":"glib%e6%9e%84%e5%bb%ba","status":"publish","type":"post","link":"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050","title":{"rendered":"glib\u6784\u5efa"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_16 counter-hierarchy counter-decimal ez-toc-grey\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" style=\"display: none;\"><i class=\"ez-toc-glyphicon ez-toc-icon-toggle\"><\/i><\/a><\/span><\/div>\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#%E4%B8%8B%E8%BD%BD\" title=\"\u4e0b\u8f7d\">\u4e0b\u8f7d<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#%E6%9E%84%E5%BB%BA\" title=\"\u6784\u5efa\">\u6784\u5efa<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#1meson%E6%9E%84%E5%BB%BA\" title=\"1.meson\u6784\u5efa\">1.meson\u6784\u5efa<\/a><ul class=\"ez-toc-list-level-3\"><li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#%E4%B8%8D%E6%8C%87%E5%AE%9A%E5%8F%82%E6%95%B0\" title=\"\u4e0d\u6307\u5b9a\u53c2\u6570\">\u4e0d\u6307\u5b9a\u53c2\u6570<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#aarch64%E5%B9%B3%E5%8F%B0\" title=\"aarch64\u5e73\u53f0\">aarch64\u5e73\u53f0<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#2autotool%E6%9E%84%E5%BB%BA\" title=\"2.autotool\u6784\u5efa\">2.autotool\u6784\u5efa<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#%E6%9E%84%E5%BB%BA%E5%BC%82%E5%B8%B8\" title=\"\u6784\u5efa\u5f02\u5e38\">\u6784\u5efa\u5f02\u5e38<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15050\/#meson\" title=\"meson\">meson<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E4%B8%8B%E8%BD%BD\"><\/span>\u4e0b\u8f7d<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>\u5b98\u7f51\u4e0b\u8f7d\uff1a<br \/>\n<a href=\"https:\/\/gitlab.gnome.org\/GNOME\/glib\/\">https:\/\/gitlab.gnome.org\/GNOME\/glib\/<\/a><\/p>\n<h1><span class=\"ez-toc-section\" id=\"%E6%9E%84%E5%BB%BA\"><\/span>\u6784\u5efa<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"1meson%E6%9E%84%E5%BB%BA\"><\/span>1.meson\u6784\u5efa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%E4%B8%8D%E6%8C%87%E5%AE%9A%E5%8F%82%E6%95%B0\"><\/span>\u4e0d\u6307\u5b9a\u53c2\u6570<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/blog.csdn.net\/gitblog_00460\/article\/details\/142838705\">https:\/\/blog.csdn.net\/gitblog_00460\/article\/details\/142838705<\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"aarch64%E5%B9%B3%E5%8F%B0\"><\/span>aarch64\u5e73\u53f0<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u5b98\u7f51\u6559\u7a0b\uff1a<br \/>\n<a href=\"https:\/\/docs.gtk.org\/glib\/cross-compiling.html\">https:\/\/docs.gtk.org\/glib\/cross-compiling.html<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/xiaolz88\/article\/details\/129999608\">https:\/\/blog.csdn.net\/xiaolz88\/article\/details\/129999608<\/a><\/p>\n<ul>\n<li>\u767e\u5ea6\u6559\u7a0b<br \/>\n\u786e\u4fdd\u4f60\u5df2\u7ecf\u5b89\u88c5\u4e86\u4ea4\u53c9\u7f16\u8bd1\u5de5\u5177\u94fe\uff0c\u6bd4\u5982aarch64-linux-gnu-gcc\u3002<\/li>\n<\/ul>\n<p>\u4e0b\u8f7dGLib\u6e90\u4ee3\u7801\u3002<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/gitlab.gnome.org\/GNOME\/glib.git\ncd glib<\/code><\/pre>\n<p>\u914d\u7f6e\u6784\u5efa\u7cfb\u7edf\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528meson\u548cninja\u6765\u5b8c\u6210\u8fd9\u4e2a\u4efb\u52a1\u3002<\/p>\n<p><code>meson setup --prefix=\/usr builddir --cross-file cross-file.txt<\/code><br \/>\n\u5728\u8fd9\u91cc\uff0ccross-file.txt\u662f\u4f60\u9700\u8981\u5b9a\u4e49\u7684\u4ea4\u53c9\u7f16\u8bd1\u6587\u4ef6\uff0c\u5b83\u770b\u8d77\u6765\u53ef\u80fd\u50cf\u8fd9\u6837\uff1a<\/p>\n<pre><code class=\"language-bash\">[binaries]\nc = &#039;aarch64-linux-gnu-gcc&#039;\ncpp = &#039;aarch64-linux-gnu-g++&#039;\nar = &#039;aarch64-linux-gnu-ar&#039;\nstrip = &#039;aarch64-linux-gnu-strip&#039;\n\n[host_machine]\nsystem = &#039;linux&#039;\ncpu_family = &#039;arm&#039;\ncpu = &#039;arm64&#039;\nendian = &#039;little&#039;<\/code><\/pre>\n<p>\u7f16\u8bd1GLib\u3002<\/p>\n<p><code>ninja -C builddir<\/code><br \/>\n\u5b89\u88c5GLib\u5230\u6307\u5b9a\u7684\u76ee\u5f55\u3002<\/p>\n<p><code>ninja -C builddir install<\/code><\/p>\n<h2><span class=\"ez-toc-section\" id=\"2autotool%E6%9E%84%E5%BB%BA\"><\/span>2.autotool\u6784\u5efa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/blog.csdn.net\/tiansyun\/article\/details\/131497079\">https:\/\/blog.csdn.net\/tiansyun\/article\/details\/131497079<\/a><\/p>\n<p>\u7b2c1\u6b65\uff1a\u751f\u6210configure\u811a\u672c<\/p>\n<p>\u7b2c2\u6b65\uff1a\u6267\u884cconfigure\u811a\u672c<br \/>\n<code>.\/configure --host=aarch64-linux-gnu --prefix=&lt;\u5b89\u88c5\u8def\u5f84&gt;<\/code><\/p>\n<h1><span class=\"ez-toc-section\" id=\"%E6%9E%84%E5%BB%BA%E5%BC%82%E5%B8%B8\"><\/span>\u6784\u5efa\u5f02\u5e38<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"meson\"><\/span>meson<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u4f7f\u7528meson\u6784\u5efa\u65f6\uff0c\u5b50\u5e93libffi\u6784\u5efa\u4f1a\u4ea7\u751f\u5f02\u5e38\uff1a<\/p>\n<pre><code class=\"language-bash\">subprojects\/libffi\/src\/meson.build:76:19: ERROR: Command `\/usr\/bin\/aarch64-linux-gnu-gcc -I\/home\/xinyi\/code\/cplus\/libs\/glib_root\/glib\/build\/subprojects\/libffi\/src\/.. -I\/home\/xinyi\/code\/cplus\/libs\/glib_root\/glib\/build\/subprojects\/libffi\/src\/..\/include -DARM -E -x assembler-with-cpp \/home\/xinyi\/code\/cplus\/libs\/glib_root\/glib\/subprojects\/libffi\/src\/..\/libffi.map.in -o \/home\/xinyi\/code\/cplus\/libs\/glib_root\/glib\/build\/subprojects\/libffi\/src\/libffi.map` failed with status 1.<\/code><\/pre>\n<p>\u76f4\u63a5\u6267\u884c\u547d\u4ee4<\/p>\n<pre><code class=\"language-bash\">In file included from \/home\/xinyi\/code\/cplus\/libs\/glib_root\/glib\/subprojects\/libffi\/src\/..\/libffi.map.in:4:\n\/home\/xinyi\/code\/cplus\/libs\/glib_root\/glib\/build\/subprojects\/libffi\/src\/..\/include\/ffitarget.h:14:10: fatal error: ffitarget-aarch64.h: \u6ca1\u6709\u90a3\u4e2a\u6587\u4ef6\u6216\u76ee\u5f55\n   14 | #include &quot;ffitarget-aarch64.h&quot;\n      |          ^~~~~~~~~~~~~~~~~~~~~\ncompilation terminated.<\/code><\/pre>\n<p>ffitarget-aarch64.h\u5934\u6587\u4ef6\u627e\u4e0d\u5230<\/p>\n<button class=\"simplefavorite-button\" data-postid=\"15050\" data-siteid=\"1\" data-groupid=\"1\" data-favoritecount=\"0\" style=\"\">\u6536\u85cf <i class=\"sf-icon-star-empty\"><\/i><\/button>","protected":false},"excerpt":{"rendered":"<p>\u76ee\u5f55 \u4e0b\u8f7d\u6784\u5efa1.meson\u6784\u5efa\u4e0d\u6307\u5b9a\u53c2\u6570aarch64\u5e73\u53f02.autotool\u6784\u5efa\u6784\u5efa\u5f02\u5e38meso [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1156],"tags":[],"_links":{"self":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/15050"}],"collection":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15050"}],"version-history":[{"count":8,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/15050\/revisions"}],"predecessor-version":[{"id":15063,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/15050\/revisions\/15063"}],"wp:attachment":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15050"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}