0

外部システム (Scientific Linux) 用に Node.js をコンパイルしていますが、コンパイル時にこのエラーが発生します。Node をビルドするための前提条件を README で確認しました。Python がインストールされており、make のバージョンは 3.81 です。そのフラグがcc1をオフにする理由がわかりません...

make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/home/nick/node_src/out'
...
...
...
cc '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DL_ENDIAN' '-DOPENSSL_THREADS' '-DPURIFY' '-D_REENTRANT' '-DOPENSSL_NO_DGRAM' '-DOPENSSL_NO_DTLS1' '-DOPENSSL_NO_SCTP' '-DOPENSSL_NO_SOCK' '-DOPENSSL_NO_RDRAND' '-DOPENSSL_NO_GOST' '-DOPENSSL_NO_HW_PADLOCK' '-DENGINESDIR="/dev/null"' '-DOPENSSLDIR="/etc/ssl"' '-DTERMIOS' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -I../deps/openssl/config/k8  -Wall -Wextra -Wno-unused-parameter -pthread -m64 -Wno-missing-field-initializers -Wno-old-style-declaration -O2 -fno-strict-aliasing -fno-tree-vrp -fno-tree-sink  -MMD -MF /home/nick/node_src/out/Release/.deps//home/nick/node_src/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/bio_ssl.o.d.raw  -c -o /home/nick/node_src/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/bio_ssl.o ../deps/openssl/openssl/ssl/bio_ssl.c
cc1: error: unrecognized command line option "-Wno-old-style-declaration"
make[1]: ***     [/home/nick/node_src/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/bio_ssl.o] Error 1
make[1]: Leaving directory `/home/nick/node_src/out'
make: *** [node] Error 2

ありがとう!

4

2 に答える 2

2

このエラーはcc1(GCC の一部) から発生したものであるため、make とは関係ありません。

-W[no-]old-style-declaration警告オプションは、この GCC の変更で 2007 年初頭に導入され、おそらくGCC 4.3 で初めて登場しました。そのため、GCC は 4.3 よりも古いように見えます。

GCC をアップグレードすることでこれを修正できますが、Scientific Linux が提供する GCC をそのまま使用することをお勧めします。おそらく、Node.js にはこれを制御するための構成オプションがあります。または-Wno-old-style-declaration、makefile ソースに表示される場所から手動で編集することができます。

Node.js の README に GCC 4.3 が前提条件として記載されていない場合は、Node.js のメンテナーに指摘してください。

于 2012-10-23T07:11:19.857 に答える
1

この依存関係はこのノードの問題で確認されており、使用できるパッチがあります。(私のために働いた!)

回避策は、この依存関係を含まない古いバージョンのノードに (一時的に) 切り替えることです。

于 2012-10-29T16:00:14.897 に答える