2014-08-30 29 views
1

我遇到了一個錯誤試圖pip install當編譯rpy2它:錯誤編制上python3.4 rpy2由於-Werror =申述後聲明

./rpy/rinterface/_rinterface.c:2376:3: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 

(以及許多更喜歡它)

這是調用了Python的編譯器提出:

gcc -pthread -Werror=declaration-after-statement -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DR_INTERFACE_PTRS=1 -DHAVE_POSIX_SIGJMP=1 -DRIF_HAS_RSIGHAND=1 -DCSTACK_DEFNS=1 -DHAS_READLINE=1 -I./rpy/rinterface -I/home/hen/miniconda3/envs/fitts/include/python3.4m -I/usr/share/R/include -c ./rpy/rinterface/_rinterface.c -o build/temp.linux-x86_64-3.4/./rpy/rinterface/_rinterface.o 

回答

3

有了一些google搜索,我確定問題是-Werror=declaration-after-statement標誌。試圖找出這個標誌從哪裏來。我最終碰到this Python issue

我在重建3.4模塊時出錯。這是一個ISO C90錯誤,但setup.py明確地將-std=c99添加到gcc參數中,並且確實使用了它。

fifo.h:114:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] uint32_t ofs = fifo->write_count - fifo->write_offset;

然而,PY 3.4似乎添加-Werror=declaration-after-statement也爲擴展模塊。這不應該發生(也稱爲#python Yhg1s)。

直到修復使得其對你的方式,這可以通過運行pip installpython setup.py install之前運行

export CFLAGS="-Wno-error=declaration-after-statement" 

來解決。

+0

這裏可能是同樣的問題:https://bitbucket.org/lgautier/rpy2/issue/203/problems-building-rpy2-hg-repository-on。修復應該在Python 3.4.2中。 – lgautier 2014-08-30 23:01:17

+0

我可以確認3.4.2修復了這個問題。 – 2014-12-01 20:38:14