1
  • rvmを使用する
  • ルビー1.9.2を使用
  • OS Xにインストールされている同一のgem(およびサポートライブラリ)
  • リンク文法がインストールされています(apt-get経由)
  • pkg-configは期待どおりに機能しています。

実行するgem install linkparserと、次のエラーが発生します。

ネイティブ拡張機能の構築。これにはしばらく時間がかかる場合があります...
エラー:linkparserのインストール中にエラーが発生しました:
    エラー:gemネイティブ拡張のビルドに失敗しました。

/home/locallyclient/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
pkg-configをチェックしています...はい
-llink-grammarでdictionary_create()をチェックしています...***extconf.rbが失敗しました***
何らかの理由でMakefileを作成できませんでした。
必要なライブラリおよび/またはヘッダー。詳細については、mkmf.logファイルを確認してください
詳細。構成オプションが必要になる場合があります。

(さらに、コマンドラインオプションとスタックトレースを含む)。

mkmf.logは次のようになります。

"gcc -o conftest -I /〜/ .rvm / rubies / ruby​​-1.9.2-p0 / include / ruby​​-1.9.1 / i686-linux -I /〜/ .rvm / rubies / ruby​​-1.9.2- p0 / include / ruby​​-1.9.1 / ruby​​ / backward -I
/~/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1-I。-D_FILE_OFFSET_BITS = 64 -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-st
ring -Wno-missing-field-initializers -Wno-long-long -fPIC-I / usr / local / includeconftest.c-L。-L /〜/ .rvm / rubies / ruby​​-1.9.2-p0 / lib -Wl、-R /〜/ .r
vm / rubies / ruby​​-1.9.2-p0 /lib-L。-rdynamic -Wl、-export-dynamic-L / usr / local / lib -Wl、-R -Wl、/〜.rvm / rubies / ruby​​-1.9.2-p0 / lib -L ​​/〜/ .rvm / rubie
s / ruby​​-1.9.2-p0 / lib -lruby-static -lpthread -lrt -ldl -lcrypt -lm -lc "
cc1:エラー:認識されないコマンドラインオプション「-fPIC-I / usr / local/include」
チェックされたプログラムは次のとおりです。
/*開始/
1:#include "ruby.h"
2:
3:int main(){return 0;}
/終了*/

(読みやすくするために、ホームパスを「〜」に置き換えます)

具体的には: cc1:エラー:認識されないコマンドラインオプション「-fPIC-I / usr / local/include」

このパラメータが壊れる理由と、どこで修正できるかについてのアイデアはありますか?

4

4 に答える 4

1

Gem のソース コードにバグがあり、これにより CFLAGS が連結され -fPIC-I/usr/local/includeます。-fPIC -I/usr/local/include

修正 (Gem バージョン 1.1.0 を参照):

./ext/exconf.rb、次の行を見つけます (20 行目と 21 行目)。

$LDFLAGS << read_cmd_output( pkgconfig, '--libs-only-L', 'link-grammar' )
$CFLAGS << read_cmd_output( pkgconfig, '--cflags', 'link-grammar' ) 

それらを次のように変更します。

$LDFLAGS << ' ' + `#{pkgconfig} --libs-only-L link-grammar`.chomp
$CFLAGS <<  ' ' + `#{pkgconfig} --cflags link-grammar`.chomp

これにより、gem を rvm gemset にインストールできるようになります。

于 2011-05-12T05:39:11.490 に答える
1

linkparser が ruby​​/intern.h などを見つけられないという同じ問題がありました。上記の指示に従いましたが、それでも機能しませんでした。/usr/lib/ruby/1.8/x86_64-linux/ruby/* から /usr/lib/ruby/1.8/x86_64-linux/* へのソフトリンク (ln -s) を作成し、linkparser をコンパイルしたときにそれはチャンピオンのように機能しました。その後、1.9.2 で試してみましたが、別のボックスでも動作しました。

私もwordnetに問題がありましたが、この修正はそれにも機能しました。

クリス

于 2011-03-30T22:20:52.950 に答える
1

ここに私が試したいくつかのステップがあります。

ruby のソースを入手 (今のところ 1.9.2 p180)

$ wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p180.tar.gz
$ tar zxvf ruby-1.9.2-p180.tar.gz

export の ruby​​ のインクルード パスを ~/.bashrc に記述して、他のネイティブ エクステンションも有効にすることができます。

$ export CPATH="`pwd`/ruby-1.9.2-p180/include":$CPATH

また、link-grammer の apt-get バージョンはバージョン 4.0 であり、linkparser が古すぎると不平を言っているようです (>=4.7.0)ため、サイトに言及したようにバージョンを取得してトランクします。今のところv4.7.4

http://www.abisource.com/projects/link-grammar/#download

: ルビーが にある場合は、/usr/local/binに変更--prefix=/usrします--prefix=/usr/local

$ svn co http://svn.abisource.com/link-grammar/trunk link-grammar
$ cd link-grammar
$ ./autogen.sh
$ ./configure --prefix=/usr
$ make
$ sudo make install
$
$ sudo gem install linkparser
Building native extensions.  This could take a while...
Successfully installed linkparser-1.1.0
1 gem installed
Installing ri documentation for linkparser-1.1.0...

正常に動作することを確認するためのテスト コード

参照: http://deveiate.org/code/linkparser/

$ irb
> require 'linkparser'
=> true
> dict = LinkParser::Dictionary.new( :screen_width => 100 )
> sent = dict.parse( "People use Ruby for all kinds of nifty things." )
> puts sent.constituent_tree_string
(S (NP People)
   (VP use
       (NP Ruby)
       (PP for
           (NP (NP all kinds)
               (PP of
                   (NP nifty things)))))
   .)
=> nil
> puts sent.diagram

    +---------------------------------Xp--------------------------------+
    |                +-----MVp----+-----Jp-----+     +------Jp-----+    |
    +----Wd---+--Sp--+--Os--+     |     +--Dmc-+--Mp-+    +----A---+    |
    |         |      |      |     |     |      |     |    |        |    |
LEFT-WALL people.p use.v Ruby.f for.p all.a kinds.n of nifty.a things.n . 

=> nil
于 2011-02-27T06:56:56.647 に答える
1

@alexander からの修正を含むバージョン 1.1.2 の gem をリリースしました。

于 2011-05-13T00:03:08.180 に答える