1<!DOCTYPE html> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<html class="theme-next pisces use-motion" lang="en"> 18<head> 19 <meta charset="UTF-8"/> 20<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 21<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2"/> 22<meta name="theme-color" content="#222"> 23 24 25 26 27 28 29 30 31 32 33 34 35<meta http-equiv="Cache-Control" content="no-transform" /> 36<meta http-equiv="Cache-Control" content="no-siteapp" /> 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" /> 60 61<link href="/css/main.css?v=6.3.0" rel="stylesheet" type="text/css" /> 62 63 64 <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=6.3.0"> 65 66 67 <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=6.3.0"> 68 69 70 <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=6.3.0"> 71 72 73 <link rel="mask-icon" href="/images/logo.svg?v=6.3.0" color="#222"> 74 75 76 77 78 79 80 81 82
83<script type="text/javascript" id="hexo.configurations"> 84 var NexT = window.NexT || {}; 85 var CONFIG = { 86 root: '/', 87 scheme: 'Pisces', 88 version: '6.3.0', 89 sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":true,"onmobile":false}, 90 fancybox: false, 91 fastclick: false, 92 lazyload: false, 93 tabs: true, 94 motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}, 95 algolia: { 96 applicationID: '', 97 apiKey: '', 98 indexName: '', 99 hits: {"per_page":10}, 100 labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"} 101 } 102 }; 103</script>
103 104 105 106 107 108 109 110 111 <meta name="description" content="&#x4E0B;&#x8F7D; GCC &#x6E90;&#x7801;&#x7684;&#x4E0B;&#x8F7D;&#x65B9;&#x5F0F;&#x7684;&#x591A;&#x79CD;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; SVN &#x6216;&#x8005; Git &#x6765; clone &#x5230;&#x67"> 112<meta name="keywords" content="gcc,compiler"> 113<meta property="og:type" content="article"> 114<meta property="og:title" content="GCC çä¸è½½ä¸æå»º"> 115<meta property="og:url" content="http://feng-qi.github.io/2019/07/09/gcc-download-config-build/index.html"> 116<meta property="og:site_name" content="feng è¨ feng è¯"> 117<meta property="og:description" content="&#x4E0B;&#x8F7D; GCC &#x6E90;&#x7801;&#x7684;&#x4E0B;&#x8F7D;&#x65B9;&#x5F0F;&#x7684;&#x591A;&#x79CD;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; SVN &#x6216;&#x8005; Git &#x6765; clone &#x5230;&#x67"> 118<meta property="og:locale" content="en"> 119<meta property="og:updated_time" content="2019-07-09T09:23:06.636Z"> 120<meta name="twitter:card" content="summary"> 121<meta name="twitter:title" content="GCC çä¸è½½ä¸æå»º"> 122<meta name="twitter:description" content="&#x4E0B;&#x8F7D; GCC &#x6E90;&#x7801;&#x7684;&#x4E0B;&#x8F7D;&#x65B9;&#x5F0F;&#x7684;&#x591A;&#x79CD;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; SVN &#x6216;&#x8005; Git &#x6765; clone &#x5230;&#x67"> 123 124 125 126 127 128 129 <link rel="canonical" href="http://feng-qi.github.io/2019/07/09/gcc-download-config-build/"/> 130 131 132
133<script type="text/javascript" id="page.configurations"> 134 CONFIG.page = { 135 sidebar: "", 136 }; 137</script>
137 138 139 <title>GCC çä¸è½½ä¸æå»º | feng è¨ feng è¯</title>
vendor: 71 bytes, lines 139-145
139 140 141 142 143 144 145<script async src="https://www.googletagmanager.com/gtag/js?id=
145UA-116135841-1
vendor: 12 bytes, line 145
145"></script>
146<script> 147
vendor: 134 bytes, lines 147-151
147window.dataLayer = window.dataLayer || []; 148 function gtag(){dataLayer.push(arguments);} 149 gtag('js', new Date()); 150 151 gtag('config', '
151UA-116135841-1
vendor: 4 bytes, line 151
151');
152</script>
152 153 154 155 156
156<script type="text/javascript"> 157 var _hmt = _hmt || []; 158 (function() { 159 var hm = document.createElement("script"); 160 hm.src = "https://hm.baidu.com/hm.js?78d4d070f33fe0f3b3b515cf9dcf714a"; 161 var s = document.getElementsByTagName("script")[0]; 162 s.parentNode.insertBefore(hm, s); 163 })(); 164 </script>
164 165 166 167 168 169 <noscript> 170 <style type="text/css"> 171 .use-motion .motion-element, 172 .use-motion .brand, 173 .use-motion .menu-item, 174 .sidebar-inner, 175 .use-motion .post-block, 176 .use-motion .pagination, 177 .use-motion .comments, 178 .use-motion .post-header, 179 .use-motion .post-body, 180 .use-motion .collection-title { opacity: initial; } 181 182 .use-motion .logo, 183 .use-motion .site-title, 184 .use-motion .site-subtitle { 185 opacity: initial; 186 top: initial; 187 } 188 189 .use-motion { 190 .logo-line-before i { left: initial; } 191 .logo-line-after i { right: initial; } 192 } 193 </style> 194</noscript> 195 196</head> 197 198<body itemscope itemtype="http://schema.org/WebPage" lang="en"> 199 200 201 202 203 204 205 <div class="container sidebar-position-left page-post-detail"> 206 <div class="headband"></div> 207 208 <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader"> 209 <div class="header-inner"><div class="site-brand-wrapper"> 210 <div class="site-meta "> 211 212 213 <div class="custom-logo-site-title"> 214 <a href="/" class="brand" rel="start"> 215 <span class="logo-line-before"><i></i></span> 216 <span class="site-title">feng è¨ feng è¯</span> 217 <span class="logo-line-after"><i></i></span> 218 </a> 219 </div> 220 221 </div> 222 223 <div class="site-nav-toggle"> 224 <button aria-label="Toggle navigation bar"> 225 <span class="btn-bar"></span> 226 <span class="btn-bar"></span> 227 <span class="btn-bar"></span> 228 </button> 229 </div> 230</div> 231 232 233 234<nav class="site-nav"> 235 236 <ul id="menu" class="menu"> 237 238 239 240 241 242 <li class="menu-item menu-item-home"> 243 <a href="/" rel="section"> 244 <i class="menu-item-icon fa fa-fw fa-home"></i> <br />Home</a> 245 </li> 246 247 248 249 250 <li class="menu-item menu-item-archives"> 251 <a href="/archives/" rel="section"> 252 <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />Archives</a> 253 </li> 254 255 256 257 </ul> 258 259 260 261 262 263</nav> 264 265 266 267 268 269 270 271</div> 272 </header> 273 274 275 276 277 278 279 280 281 <a href="https://github.com/feng-qi" class="github-corner" target="_blank" title="Follow me on GitHub" aria-label="Follow me on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#222; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg> 282 283 </a> 284 285 286 287 288 <main id="main" class="main"> 289 <div class="main-inner"> 290 <div class="content-wrap"> 291 292 293 294 295 <div id="content" class="content"> 296 297 298 <div id="posts" class="posts-expand"> 299 300 301 302 303 304 305 306 307 308 309 <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article"> 310 311 312 313 <div class="post-block"> 314 <link itemprop="mainEntityOfPage" href="http://feng-qi.github.io/2019/07/09/gcc-download-config-build/"> 315 316 <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"> 317 <meta itemprop="name" content="fengqi"> 318 <meta itemprop="description" content=""> 319 <meta itemprop="image" content="/uploads/avatar.jpg"> 320 </span> 321 322 <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"> 323 <meta itemprop="name" content="feng è¨ feng è¯"> 324 </span> 325 326 327 <header class="post-header"> 328 329 330 331 <h1 class="post-title" itemprop="name headline">GCC çä¸è½½ä¸æå»º 332 333 334 </h1> 335 336 337 <div class="post-meta">
338 <span class="post-time"> 339 340 341 342 343 344 345 <span class="post-meta-item-icon"> 346 <i class="fa fa-calendar-o"></i> 347 </span> 348 349 <span class="post-meta-item-text">Posted on</span> 350 351 352 353 354 355 356 <time title="Created: 2019-07-09 15:45:00" itemprop="dateCreated datePublished" datetime="2019-07-09T15:45:00+08:00">2019-07-09</time> 357 358 359 360 </span> 361 362 363 364 365 366 <span class="post-comments-count"> 367 <span class="post-meta-divider">|</span> 368 <span class="post-meta-item-icon"> 369 <i class="fa fa-comment-o"></i> 370 </span> 371 <a href="/2019/07/09/gcc-download-config-build/#comments" itemprop="discussionUrl"> 372 <span class="post-meta-item-text">Comments: </span> <span class="post-comments-count gitment-comments-count" data-xid="/2019/07/09/gcc-download-config-build/" itemprop="commentsCount"></span> 373 </a> 374 </span> 375 376 377 378 379 380 381 382 383 384 385 386 387 </div> 388 </header> 389 390 391 392 393 394 <div class="post-body" itemprop="articleBody"> 395 396 397 398 399 400 <div id="content"> 401 402<div id="outline-container-org163da2b" class="outline-2"> 403<h2 id="org163da2b">下载</h2> 404<div class="outline-text-2" id="text-org163da2b"> 405<p> 406GCC 源码的下载方式的多种,可以通过 SVN 或者 Git 来 clone 到本地,或者通过 407rsync 来同步,可以在<a href="https://gcc.gnu.org/" target="_blank" rel="noopener">官网</a>页面上找到相应的链接。在众多方式中,只有 SVN 方式可以 408提交代码(当然也不是随便提交的,这里不详述)。 409</p> 410 411<a id="more"></a> 412 413<p> 414这里说一下怎么通过 Git 得到代码。GCC 有一个自己的仓库地址,同时在 GitHub 上也 415有镜像。这两个仓库都是以 SVN 仓库为基础的,并不接受 patch,这里再强调一下,现 416在只有 SVN 方式可以提交代码。(之前 GCC 社区有在做转到 Git 的工作,但推进极其 417缓慢,好像已经7年了,还是没有完成,不知道还能不能完成。)克隆仓库的命令可以从 418下面选择一个: 419</p> 420 421<div class="org-src-container"> 422<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> git://gcc.gnu.org/git/gcc.git</span><br><span class="line">git <span class="built_in">clone</span> https://github.com/gcc-mirror/gcc</span><br></pre></td></tr></table></figure> 423</div> 424</div> 425</div> 426 427<div id="outline-container-orgba79f4b" class="outline-2"> 428<h2 id="orgba79f4b">配置</h2> 429<div class="outline-text-2" id="text-orgba79f4b"> 430<p> 431先选择要把 GCC 构建在哪个目录,构建之前需要先进行 <code>configure</code>, 不要选在源文件所 432在目录或其子目录,GCC 并不支持这样做。 433</p> 434 435<p> 436GCC 的配置选项很多<sup><a id="fnr.1" class="footref" href="#fn.1">1</a></sup>,初次接触的话可以尽量简单配置,比如: 437</p> 438 439<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> 440 441 442<colgroup> 443<col class="org-left"> 444 445<col class="org-left"> 446</colgroup> 447<thead> 448<tr> 449<th scope="col" class="org-left">选项
449</th> 450<th scope="col" class="org-left">描述</th> 451</tr> 452</thead> 453<tbody> 454<tr> 455<td class="org-left"><code>--enable-languages</code></td> 456<td class="org-left">指定要构建哪些语言对应的编译器及运行时库</td> 457</tr> 458 459<tr> 460<td class="org-left"><code>--prefix</code></td> 461<td class="org-left">指定安装目录,不要与源码或构建目录相同</td> 462</tr> 463 464<tr> 465<td class="org-left"><code>--disable-bootstrap</code></td> 466<td class="org-left">禁止 bootstrap</td> 467</tr> 468</tbody> 469</table> 470 471<p> 472GCC 在构建时,默认会构建 3 次:用本地 gcc 作为编译器构建出 stage1-gcc,用 473stage1-gcc 作为编译器构建出 stage2-gcc,用 stage2-gcc 作为编译器构建出 474stage3-gcc。这个过程叫做 <code>bootstrap</code> 。 475</p> 476 477<p> 478stage3-gcc 被认为是最好或最符合源码的一个构建,但比较费时,可以使用 479<code>--disable-bootstrap</code> 来禁止。但需要注意,在修改过源码后,如果没有 bootstrap 480可以编译通过,并不代表 bootstrap 一定会过。(要不然 bootstrap 也没有存在的意义 481了。) 482</p> 483 484<p> 485还有就是 GCC 默认是构建 release 版本,不利于调试,如果要构建 debug 版,需要在 486configure 时就进行配置,构建 debug 版的命令为(假设 GCC 源码位于 <code>${GCC_SRC}</code>): 487</p> 488 489<div class="org-src-container"> 490<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">CFLAGS=<span class="string">"-O0 -g3 -fno-inline"</span> \</span><br><span class="line">CXXFLAGS=<span class="string">"-O0 -g3 -fno-inline"</span> \</span><br><span class="line">CFLAGS_FOR_BUILD=<span class="string">"-O0 -g3 -fno-inline"</span> \</span><br><span class="line">CFLAGS_FOR_TARGET=<span class="string">"-O0 -g3 -fno-inline"</span> \</span><br><span class="line">CXXFLAGS_FOR_BUILD=<span class="string">"-O0 -g3 -fno-inline"</span> \</span><br><span class="line">CXXFLAGS_FOR_TARGET=<span class="string">"-O0 -g3 -fno-inline"</span> \</span><br><span class="line"><span class="variable">${GCC_SRC}</span>/configure --enable-languages=c,c++ --disable-bootstrap --prefix=/tmp/gcc-tmpi</span><br></pre></td></tr></table></figure> 491</div> 492 493<p> 494构建 release 版的命令为(如果不需要 bootstrap,可以自己加上参数): 495</p> 496<div class="org-src-container"> 497<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">${GCC_SRC}</span>/configure --enable-languages=c,c++ --prefix=/tmp/gcc-tmpi</span><br></pre></td></tr></table></figure> 498</div> 499 500<p> 501如果 <code>configure</code> 失败,可能是缺少依赖的库,根据提示安装上即可。比如 Ubuntu 可 502以尝试用下面这条命令安装部分依赖: 503</p> 504 505<div class="org-src-container"> 506<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install -y libgmp-dev libmpfr-dev libmpc-dev</span><br></pre></td></tr></table></figure> 507</div> 508</div> 509</div> 510 511<div id="outline-container-orge8a2201" class="outline-2"> 512<h2 id="orge8a2201">构建</h2> 513<div class="outline-text-2" id="text-orge8a2201"> 514<p> 515<code>configure</code> 之后只需在 build 目录中运行 <code>make</code> 即可。根据计算机配置可以加上合 516适的 <code>-j</code> 参数。 517</p> 518</div> 519</div> 520 521<div id="outline-container-org8f62de9" class="outline-2"> 522<h2 id="org8f62de9">安装</h2> 523<div class="outline-text-2" id="text-org8f62de9"> 524<p> 525如果只是想试用一下新编译的 GCC,你并不需要安装它。假设构建目录为 526<code>${BUILD}</code>, 找到 <code>${BUILD}/gcc</code> 目录下的 <code>xgcc</code> 或 <code>xg++</code>, 它们就是相 527应的 <code>c/c++</code> 编译器。可以使用下面的方法使用它: 528</p> 529 530<div class="org-src-container"> 531<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">${BUILD}</span>/gcc/xgcc -B<span class="variable">${BUILD}</span>/gcc demo.c</span><br></pre></td></tr></table></figure> 532</div> 533 534<p> 535如果你确实想要安装, <code>make install</code> 就可以了。 536</p> 537</div> 538</div> 539<div id="footnotes"> 540<h2 class="footnotes">Footnotes: </h2> 541<div id="text-footnotes"> 542 543<div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1">1</a></sup> <div class="footpara"><p class="footpara"> 544<a href="https://gcc.gnu.org/install/configure.html" target="_blank" rel="noopener">https://gcc.gnu.org/install/configure.html</a> 545</p></div></div> 546 547 548</div> 549</div></div> 550<div id="postamble" class="status"> 551Last Updated 2019-07-09 Tue 17:23.<br>Render by <a href="https://github.com/coldnew/hexo-renderer-org" target="_blank" rel="noopener">hexo-renderer-org</a> with <a href="https://www.gnu.org/software/emacs/" target="_blank" rel="noopener">Emacs</a> 26.1 (<a href="https://orgmode.org" target="_blank" rel="noopener">Org</a> mode 9.1.13) 552</div> 553 554 555 </div> 556 557 558 559 560 561 562 563 564 565 566 567 568 569 <footer class="post-footer"> 570 571 <div class="post-tags"> 572 573 <a href="/tags/gcc/" rel="tag"># gcc</a> 574 575 <a href="/tags/compiler/" rel="tag"># compiler</a> 576 577 </div> 578 579 580 581 582 583 584 585 <div class="post-nav"> 586 <div class="post-nav-next post-nav-item"> 587 588 <a href="/2018/08/19/llvm-how-to-get-started-with-the-llvm-c-api/" rel="next" title="[è¯]å¦ä½å¼å§ä½¿ç¨ LLVM C API"> 589 <i class="fa fa-chevron-left"></i> [è¯]å¦ä½å¼å§ä½¿ç¨ LLVM C API 590 </a> 591 592 </div> 593
594 <span class="post-nav-divider"></span> 595 596 <div class="post-nav-prev post-nav-item"> 597 598 </div> 599 </div> 600 601 602 603 604 </footer> 605 </div> 606 607 608 609 </article> 610 611 612 613 <div class="post-spread"> 614 615 </div> 616 </div> 617 618 619 </div> 620 621 622 623 <div class="comments" id="comments"> 624 625 <div id="gitment-container"></div> 626 627 </div> 628 629 630 631 632 633 </div> 634 635 636 637 <div class="sidebar-toggle"> 638 <div class="sidebar-toggle-line-wrap"> 639 <span class="sidebar-toggle-line sidebar-toggle-line-first"></span> 640 <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span> 641 <span class="sidebar-toggle-line sidebar-toggle-line-last"></span> 642 </div> 643 </div> 644 645 <aside id="sidebar" class="sidebar"> 646 647 <div class="sidebar-inner"> 648 649 650 651 652 <ul class="sidebar-nav motion-element"> 653 <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap"> 654 Table of Contents 655 </li> 656 <li class="sidebar-nav-overview" data-target="site-overview-wrap"> 657 Overview 658 </li> 659 </ul> 660 661 662 <section class="site-overview-wrap sidebar-panel"> 663 <div class="site-overview"> 664 <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person"> 665 666 <img class="site-author-image" itemprop="image" 667 src="/uploads/avatar.jpg" 668 alt="fengqi" /> 669 670 <p class="site-author-name" itemprop="name">fengqi</p> 671 <p class="site-description motion-element" itemprop="description"></p> 672 </div> 673 674 675 <nav class="site-state motion-element"> 676 677 <div class="site-state-item site-state-posts"> 678 679 <a href="/archives/"> 680 681 <span class="site-state-item-count">78</span> 682 <span class="site-state-item-name">posts</span> 683 </a> 684 </div> 685 686 687 688 689 690 691 692 <div class="site-state-item site-state-tags"> 693 <a href="/tags/index.html"> 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815
816 <span class="site-state-item-count">57</span> 817 <span class="site-state-item-name">tags</span> 818 </a> 819 </div> 820 821 </nav> 822 823 824 825 826 827 <div class="links-of-author motion-element"> 828 829 <span class="links-of-author-item"> 830 <a href="https://github.com/feng-qi" target="_blank" title="GitHub"><i class="fa fa-fw fa-github"></i>GitHub</a> 831 832 </span> 833 834 <span class="links-of-author-item"> 835 <a href="https://stackoverflow.com/users/7961156/fengqi" target="_blank" title="StackOverflow"><i class="fa fa-fw fa-stack-overflow"></i>StackOverflow</a> 836 837 </span> 838 839 </div> 840 841 842 843 844 845 846 847 848 849 850 851 852 853 </div> 854 </section> 855 856 857 <!--noindex--> 858 <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active"> 859 <div class="post-toc"> 860 861 862 863 864 865 866 <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#org163da2b"><span class="nav-number">1.</span> <span class="nav-text">ä¸è½½</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#orgba79f4b"><span class="nav-number">2.</span> <span class="nav-text">é ç½®</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#orge8a2201"><span class="nav-number">3.</span> <span class="nav-text">æå»º</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#org8f62de9"><span class="nav-number">4.</span> <span class="nav-text">å®è£ </span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#undefined"><span class="nav-number">5.</span> <span class="nav-text">Footnotes: </span></a></li></ol></div> 867 868 869 </div> 870 </section> 871 <!--/noindex--> 872 873 874 875 876 </div> 877 </aside> 878 879 880 881 </div> 882 </main> 883 884 <footer id="footer" class="footer"> 885 <div class="footer-inner"> 886 <div class="copyright">© <span itemprop="copyrightYear">2019</span> 887 <span class="with-love" id="animate"> 888 <i class="fa fa-user"></i> 889 </span> 890 <span class="author" itemprop="copyrightHolder">fengqi</span> 891 892 893 894 895</div> 896 897 898 899 900 <div class="powered-by">Powered by <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a> v3.7.1</div> 901 902 903 904 <span class="post-meta-divider">|</span> 905 906 907 908 <div class="theme-info">Theme — <a class="theme-link" target="_blank" href="https://github.com/theme-next/hexo-theme-next">NexT.Pisces</a> v6.3.0</div> 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 </div> 924 </footer> 925 926 927 <div class="back-to-top"> 928 <i class="fa fa-arrow-up"></i> 929 930 <span id="scrollpercent"><span>0</span>%</span> 931 932 </div> 933 934 935 936 937 </div> 938 939 940
941<script type="text/javascript"> 942 if (Object.prototype.toString.call(window.Promise) !== '[object Function]') { 943 window.Promise = null; 944 } 945</script>
945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974
974<script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
974 975 976 977 978 979
979<script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
979 980 981 982 983 984
984<script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
984 985 986 987 988 989 990 991
991<script type="text/javascript" src="/js/src/utils.js?v=6.3.0"></script>
991 992 993
993<script type="text/javascript" src="/js/src/motion.js?v=6.3.0"></script>
993 994 995 996 997 998 999 1000 1001
1001<script type="text/javascript" src="/js/src/affix.js?v=6.3.0"></script>
1001 1002 1003
1003<script type="text/javascript" src="/js/src/schemes/pisces.js?v=6.3.0"></script>
1003 1004 1005 1006 1007 1008
1008<script type="text/javascript" src="/js/src/scrollspy.js?v=6.3.0"></script>
vendor: 1 bytes, line 1008
1008
1009<script type="text/javascript" src="/js/src/post-details.js?v=6.3.0"></script>
1009 1010 1011 1012 1013 1014 1015 1016
1016<script type="text/javascript" src="/js/src/bootstrap.js?v=6.3.0"></script>
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043<!-- LOCAL: You can save these files to your site and update links --> 1044 1045 1046 <link rel="stylesheet" href="https://aimingoo.github.io/gitmint/style/default.css"> 1047
1047<script src="https://aimingoo.github.io/gitmint/dist/gitmint.browser.js"></script>
1047 1048 1049<!-- END LOCAL --> 1050 1051 1052 1053 1054
1054<script type="text/javascript"> 1055 function renderGitment(){ 1056 var gitment = new Gitmint({ 1057 id: '1562658300000', 1058 owner: 'feng-qi', 1059 repo: 'gitment-comments', 1060 1061 lang: "" || navigator.language || navigator.systemLanguage || navigator.userLanguage, 1062 1063 oauth: { 1064 1065 1066 client_secret: '0888b012b697a98831fa02f2df30e0b2d098d611', 1067 1068 client_id: '95e0371ecb66982715e0' 1069 }}); 1070 gitment.render('gitment-container'); 1071 } 1072 1073 1074 renderGitment(); 1075 1076 </script>
1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118</body> 1119</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.