2015-02-09 17 views
0

試圖建立一個開源項目(systemd,不necesarilly相關的),我被困在下面的錯誤(也沒有直接關係)已經被定義爲:如何追查,其中未申報的常數應該在linux

CC  src/libsystemd/sd-rtnl/libsystemd_la-rtnl-types.lo 
src/libsystemd/sd-rtnl/rtnl-types.c:278:10: error: 'IFLA_INET6_ADDR_GEN_MODE' undeclared here (not in a function) 
     [IFLA_INET6_ADDR_GEN_MODE]  = { .type = NLA_U8 }, 
     ^
src/libsystemd/sd-rtnl/rtnl-types.c:278:9: error: array index in initializer not of integer type 
     [IFLA_INET6_ADDR_GEN_MODE]  = { .type = NLA_U8 }, 
     ^
src/libsystemd/sd-rtnl/rtnl-types.c:278:9: error: (near initialization for 'rtnl_af_spec_inet6_types') 
src/libsystemd/sd-rtnl/rtnl-types.c:278:9: warning: excess elements in array initializer [enabled by default] 
src/libsystemd/sd-rtnl/rtnl-types.c:278:9: warning: (near initialization for 'rtnl_af_spec_inet6_types') [enabled by default] 

我的問題則是:

我怎麼想通了其中IFLA_INET6_ADDR_GEN_MODE應該被定義/什麼標題我缺少

我自己的想法是:

  1. 谷歌的錯誤信息(沒有運氣,OFC,否則我就不會在這裏..)
  2. 搜索它在我的所有文件sudo rgrep IFLA_INET6_ADDR_GEN_MODE /
  3. 你的想法?

一個偉大的回答會是這樣,你的理由/學習/學習去知道這個常量聲明,使我和其他讀者去學習,而不是簡單地看一個事實。

更新(編譯程序):

git clone [email protected]:systemd/systemd.git 
cd systemd/ 
./autogen.sh 
./configure CFLAGS='-g -O0 -ftrapv' --enable-compat-libs --enable-kdbus --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --enable-gtk-doc --with-rootprefix= --with-rootlibdir=/lib --disable-gnutls 
make 
+0

應在配置腳本中檢查。查看'configure'的輸出以進行相關測試。 – 2015-02-09 14:01:54

+1

你可以粘貼你如何建立systemd的步驟。可能我們可以試試嗎? – 2015-02-09 14:10:28

+0

@WilliamPursell我在輸出中看不到任何警報。我在找什麼? https://dl.dropboxusercontent.com/u/2008558/configure.out – kidmose 2015-02-10 09:03:48

回答

0

我googgled不斷,並得到了指針http://permalink.gmane.org/gmane.linux.network/322662。它似乎是在b/include/uapi/linux/if_link.h

+0

那就是Linux內核源碼 – 2015-02-09 14:07:09

+0

從'rtnl-types.c'中搜索常量,名稱與缺少的名稱類似,這也導致我訪問該文件。 'sudo find/-name'if_link.h'和-exec grep IFLA_INET6_ADDR_GEN_MODE {} \;'找不到任何東西,所以也許我的內核已經過期了?也許嘗試從推薦的補丁之前發佈systemd? – kidmose 2015-02-10 08:49:32

0

聲明我有同樣的問題,並尋找谷底問題後,我意識到我的內核頭沒有更新。

此變量介於版本3.16〜3.17之間(不太確定何時但我的是3.13)。

要看看你用的什麼以下

運行:

% rpm -qf /usr/include/linux/if_link.h 

uname -r 

此外,這是一個新的v219功能systemd這增加了這種依賴性。

更多信息: http://cgit.freedesktop.org/systemd/systemd/tree/NEWS#n291

您試圖編譯原點/主HEAD,測試,嘗試建立V218。