作者 主題: 編譯相容性問題  (閱讀 6110 次)

0 會員 與 1 訪客 正在閱讀本文。

被騎上班的老

  • 區域板主
  • 活潑的大學生
  • *****
  • 文章數: 360
    • 檢視個人資料
編譯相容性問題
« 於: 2009-07-30 17:08 »
原文 http://www.debian.org/doc/manuals/maint-guide/ch-modify.zh-tw.html


引用
有一個非常普遍的問題:在不同的平台上連結程式庫通常是不一樣的。例如,Makefile中包裝檔含了對一個庫的參照,但Debian系統上並沒有這個程式庫。在這種情況下,我們需要把它修改成為一個在Debian中確實存在並且完成相同功能的庫。

因此,如果在你的程式的Makefile(或是Makefile.in)中有類似於下面的一行(並且使你的程式無法編譯了):

        LIBS = -lcurses -lsomething -lsomethingelse

可以把它改成這樣,一般情況下它都能工作:

        LIBS = -lncurses -lsomething -lsomethingelse

這是編譯環境不同會出現的困難點。

lloyd

  • 酷!學園 學長們
  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
回覆: 編譯相容性問題
« 回覆 #1 於: 2010-02-16 06:59 »
原文 http://www.debian.org/doc/manuals/maint-guide/ch-modify.zh-tw.html


引用
有一個非常普遍的問題:在不同的平台上連結程式庫通常是不一樣的。例如,Makefile中包裝檔含了對一個庫的參照,但Debian系統上並沒有這個程式庫。在這種情況下,我們需要把它修改成為一個在Debian中確實存在並且完成相同功能的庫。

因此,如果在你的程式的Makefile(或是Makefile.in)中有類似於下面的一行(並且使你的程式無法編譯了):

        LIBS = -lcurses -lsomething -lsomethingelse

可以把它改成這樣,一般情況下它都能工作:

        LIBS = -lncurses -lsomething -lsomethingelse

這是編譯環境不同會出現的困難點。

Hello, 老大

你舉的這個例子,我覺得不很恰當,這比較像函式庫 libary 相容性的問題,
有這個問題的話應該去修正 libncurses 它本來就應該要有 libcurses 才對。

BTW: 不同 libary 有提供相同或相似功能時,會有 libary 的選用上的問題,
這應該用 autotools autoconfig 來解決。