青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

戰(zhàn)魂小筑

討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

   :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

最近頁游開放平臺比較多, 每個平臺要求的Linux版本各不相同, 這給開發(fā)人員部署服務器帶來了很大的困難. 在本機Linux編譯的程序,發(fā)布時即便將依賴的so附帶到目標Linux環(huán)境,仍然會碰到依賴及版本問題,例如:

[root@localhost bin]# ldd wkcenter
./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./wkcenter)
./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./wkcenter)
./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.9' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.8' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.11' not found (required by ./wkcenter)

        linux-gate.so.1 =>  (0xffffe000)
        liblog4cpp.so.4 => not found
        libprotobuf.so.7 => not found
        libboost_filesystem.so.1.48.0 => not found
        libboost_system.so.1.48.0 => not found
        libboost_thread.so.1.48.0 => not found
        libboost_program_options.so.1.48.0 => not found
        libunwind-x86.so.7 => not found
        libluabind.so.0.9.0 => not found
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x008ae000)
        libm.so.6 => /lib/libm.so.6 (0x0044b000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00476000)
        libc.so.6 => /lib/libc.so.6 (0x002c1000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0041d000)
        librt.so.1 => /lib/librt.so.1 (0x00440000)
        /lib/ld-linux.so.2 (0x002a2000)

上面紅字部分表示glibc及glibcxx庫依賴不正確. 本人使用的Linux編譯版本為Mint 11(基于Ubuntu), 一般Ubuntu發(fā)行版的glibc配備非常高. 但是上文中的發(fā)布的Linux版本為CentOS 5.8

使用/lib/libc.so.6 查看libc版本為2.5, 遠遠低于開發(fā)環(huán)境的2.11

GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-51).
Compiled on a Linux 2.6.9 system on 2012-02-21.
Available extensions:
        The C stubs add-on version 2.1.2.
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        GNU libio by Per Bothner
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
        RT using linux kernel aio
Thread-local storage support included.
For bug reporting instructions, please see:
<
http://www.gnu.org/software/libc/bugs.html>.

由于Linux操作系統(tǒng)的特有elf加載順序. (可以參考此文). 雖然可以很大程度上解決Windows早期版本的dll hell問題, 但是給部署帶來了很大難度

一般常見的解決方法是, 找到一個與目標Linux版本及glibc版本一致的Linux, 將代碼及依賴包放在之上編譯, 完成后再發(fā)布.這種方法與Linux下常見軟件安裝方法類似. 但是對于商用服務器部署步驟來說未免繁瑣, 安全性低.

還有一種方法,使用靜態(tài)鏈接. 將所有可執(zhí)行文件文件依賴的靜態(tài)庫, 系統(tǒng)庫,全部靜態(tài)鏈接到可執(zhí)行文件中,可以一次性解決這個問題

步驟:

    1. 在gcc鏈接命令行中添加-static -static-libgcc -static-libstdc++

    2. 將第三方依賴庫打開靜態(tài)鏈接開關, 將原來鏈接.so的庫,全改為鏈接.a

    3. gcc對鏈接庫順序很敏感, 鏈接庫順序需要按照從前至后為:  項目產(chǎn)生的靜態(tài)庫 > 第三方庫靜態(tài)庫 > 系統(tǒng)靜態(tài)庫

    4. 鏈接時, 若有未解決的symbol, 可以嘗試在最后添加-lpthread及-lrt解決

   

在發(fā)布版本Linux上運行可能遇到的問題:

terminate called after throwing an instance of 'std::runtime_error'

what(): locale::facet::_S_create_c_locale name not valid

解決方法: 執(zhí)行之前運行export LC_ALL="C"


評論

# re: 讓C/C++程序一次編譯可以發(fā)布到多版本Linux之上 2012-04-20 12:43 LOGOS
也可以把缺失的so一同發(fā)布  回復  更多評論
  

# re: 讓C/C++程序一次編譯可以發(fā)布到多版本Linux之上 2012-04-24 09:33 red
靜態(tài)庫鏈接感覺并不是個很好的方案,穩(wěn)定性不知道會不會有問題
還有就是很多第三方庫的授權未必支持靜態(tài)庫  回復  更多評論
  

# re: 讓C/C++程序一次編譯可以發(fā)布到多版本Linux之上 2014-01-23 15:37 molixiaoge
為什么 -static 無法編譯  回復  更多評論
  

# re: 讓C/C++程序一次編譯可以發(fā)布到多版本Linux之上 2014-05-12 09:27 長壽夢
曾經(jīng)我的執(zhí)行程序依賴ssl庫,把原編譯環(huán)境的所有的so庫到拷貝過來,還是不行。直到把代碼在目標linux環(huán)境編譯完成,再運行,才沒問題。@LOGOS
  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久精品午夜少妇| 欧美日本在线看| 亚洲精品一区二区三区99| 午夜精彩视频在线观看不卡| 亚洲视频精品在线| 欧美午夜不卡在线观看免费| 亚洲人成高清| 亚洲视频1区| 国产精品日韩久久久| 亚洲制服丝袜在线| 久久在线免费观看视频| 亚洲第一网站| 国产精品xnxxcom| 亚洲欧美另类综合偷拍| 久久噜噜噜精品国产亚洲综合| 国内自拍一区| 欧美日韩国内| 欧美有码视频| 亚洲激情亚洲| 久久久亚洲一区| 99精品久久久| 黄色日韩精品| 国产精品国产馆在线真实露脸| 久久av一区二区| 亚洲激情视频在线观看| 欧美精品久久天天躁| 先锋影音久久| 一本一本a久久| 欧美国产在线观看| 久久精品道一区二区三区| 一区二区免费看| 亚洲国产精品福利| 国产在线一区二区三区四区 | 日韩亚洲精品视频| 国产自产精品| 国产美女高潮久久白浆| 欧美日韩午夜在线| 欧美jizz19hd性欧美| 久久久久久日产精品| 香蕉久久国产| 欧美在线一二三四区| 欧美夜福利tv在线| 亚洲欧美伊人| 亚洲图片欧洲图片日韩av| 最新日韩在线视频| 亚洲国产精品久久人人爱蜜臀| 女同性一区二区三区人了人一| 麻豆国产va免费精品高清在线| 欧美一区二区成人6969| 欧美专区一区二区三区| 久久精品视频va| 狂野欧美一区| 亚洲国产高潮在线观看| 亚洲精品一区二区网址| 一本一本久久a久久精品综合妖精| 亚洲最新在线| 久久激情一区| 欧美日韩福利视频| 国产欧美日韩中文字幕在线| 国产亚洲欧美一区在线观看| 亚洲国产精品一区二区第四页av| 妖精成人www高清在线观看| 国产精品一区二区女厕厕| 国内精品久久国产| 日韩午夜高潮| 久久夜色精品国产噜噜av| 欧美激情久久久| 午夜激情久久久| 欧美午夜免费电影| 亚洲经典在线| 久久久爽爽爽美女图片| 日韩一二三在线视频播| 久久久久成人精品免费播放动漫| 欧美喷水视频| 亚洲激情午夜| 欧美不卡高清| 久久精品国产久精国产爱| 欧美日本中文字幕| 亚洲国产天堂久久综合| 欧美一区二区在线播放| 亚洲三级影院| 欧美波霸影院| 亚洲国产综合在线看不卡| 六月婷婷久久| 久久欧美中文字幕| 国产在线高清精品| 久久精品视频在线看| 亚洲自拍偷拍色片视频| 欧美性猛交一区二区三区精品| 亚洲国产欧美另类丝袜| 欧美激情一区二区三区蜜桃视频 | 尤物在线精品| 免费黄网站欧美| 免费看亚洲片| av成人免费在线| 正在播放亚洲一区| 欧美四级在线观看| 欧美影院一区| 开元免费观看欧美电视剧网站| 亚洲国产精品久久久久久女王| 欧美成人综合在线| 欧美日韩成人在线| 欧美涩涩视频| 久久av一区二区三区| 久久午夜精品一区二区| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美在线免费观看| 亚洲国产日韩一区二区| 亚洲在线免费| 日韩视频不卡| 久久蜜桃av一区精品变态类天堂| 亚洲免费成人| 久久久人成影片一区二区三区观看| 亚洲免费观看| 久久麻豆一区二区| 欧美资源在线| 欧美性猛交xxxx免费看久久久| 欧美成人精品1314www| 国产日韩在线播放| 夜夜嗨一区二区| 日韩视频免费观看| 久久综合网络一区二区| 久久综合给合| 一区在线播放| 久久中文字幕一区| 毛片基地黄久久久久久天堂| 国产精品一区久久久久| 亚洲午夜免费视频| 一本久道综合久久精品| 久久久久久久综合狠狠综合| 亚洲欧美一区二区在线观看| 久久亚洲综合| 亚洲精品在线视频观看| 久久久亚洲欧洲日产国码αv | 欧美一区二区三区四区视频| 99re6热只有精品免费观看| 久久经典综合| 久久一区亚洲| 亚洲国产综合在线看不卡| 久久国产精品久久久久久久久久| 亚洲一区二三| 国产精品视频yy9299一区| 亚洲一二三级电影| 亚洲调教视频在线观看| 欧美视频一区在线观看| 日韩视频在线观看| 久久福利毛片| 欧美在线观看日本一区| 性做久久久久久| 国产精品网站视频| 久久精品色图| 欧美激情一区二区三区| 亚洲精品永久免费精品| 欧美视频四区| 欧美国产日韩亚洲一区| 在线一区亚洲| 久久深夜福利| 亚洲理论电影网| 激情综合色丁香一区二区| 久久久久久久久久看片| 亚洲福利专区| 午夜精品久久久久久99热软件| 国产亚洲精品激情久久| 免费人成网站在线观看欧美高清| 亚洲人成欧美中文字幕| 久久都是精品| 欧美中文字幕在线播放| 日韩图片一区| 一区二区在线视频| 欧美小视频在线| 国产精品va| 欧美成人中文字幕| 久久不射电影网| 免费亚洲电影在线观看| 久久久www| 欧美亚洲尤物久久| 艳女tv在线观看国产一区| 国产精品久久久久9999| 国产精品啊v在线| 欧美大片一区| 美女黄网久久| 欧美激情精品久久久久久大尺度| 香蕉av777xxx色综合一区| 一区二区三区精品视频| 欧美黄色成人网| 久久精品最新地址| 久久成人精品| 久久久久一区二区三区| 久久av一区二区三区| 欧美一区二区三区的| 欧美激情2020午夜免费观看| 欧美激情亚洲一区| 免费久久久一本精品久久区| 99精品免费网| 久久久999精品免费| 久久躁日日躁aaaaxxxx| 蜜臀av性久久久久蜜臀aⅴ| 亚洲激情网址| 亚洲综合视频网| 久久影视精品|