libstdc 原始碼編譯簡單記錄

2021-10-25 10:28:03 字數 1111 閱讀 8732

libstdc++ 庫的原始碼其實就在 gcc 的原始碼中,gcc原始碼 有個目錄libstdc+±v3,就是它

基於 gcc-6.4.0 測試

../libstdc++-v3/configure --prefix=/opt/data/libs/libstdcpp/nttr1 --host=arm-openwrt-linux --enable-libstdcxx-threads這是乙個基礎的編譯引數

需要在同級目錄下建立乙個編譯用的目錄,然後進入目錄裡面去編譯

- ***

- gcc-6.4.0

- libstdc++-v3

- build-libstd

交叉編譯需要提前設定好編譯工具,部分編譯是通過引數傳入

export cc=***-gcc

export cxx=***-g++

編譯之後執行,出現如下提示

symbol _ztvnst6thread6_statee, version glibcxx_3.4.22 not defined in file libstdc++.so.6 with link time reference

分析一下,應該是執行緒沒有編譯進去

config.log應該是 gthreads 沒有檢測通過,於是沒有編譯 thread

檢查libstdc++-v3/configure檔案在 gthreads 的測試**,發現includefind . -name gthr.h就可以看到

編譯目錄和原始碼目錄都會有,結構大概是

bits/gthr.h

bits/gthr-

default

.hbits/gthr-posix.h

gthr.h 中已經include 的 gthr-default.h,相關configure 中的檢測**需要的巨集定義也是這裡有。為什麼還是有問題,結果在 include 標頭檔案中指定bits/gthr.h就可以了,就是加上前面的 bits 目錄

手動編譯原始碼安裝mysql 原始碼編譯安裝mysql

1 安裝mysql需要的依賴包 yum y install ncurses devel libaio devel 2 安裝編譯mysql需要的軟體 mysql 有3個版本分支 5.0 5.1系列 5.4 5.7系列 6.0 7.1群集產品系列 最早的mysql 5.0 5.1產品 直接.config...

chromium 原始碼編譯

以下內容基於 linux ubuntu3.0.0 16 generic 28 ubuntu smp fri jan 27 17 44 39 utc 2012 x86 64 gnu linux 參考網頁給出的步驟 1 安裝 depot tools,cd 到你想要的工作目錄 1.1 通過 svn 獲取 ...

Chrome原始碼編譯

根據中的描述,先裝vc2008,打好各種補丁,再裝june 2010 directx sdk,再裝winsdk7.1,配置vc上的路徑,在配路徑時,要把dx的路徑放到winsdk的前面。否則在編包含xinput檔案的時候會出錯。編譯時才發現chrome用起來很爽,開發起來很吃機器,真不是我這種屌絲程...