-2

Ubuntu linux( )でShallotをコンパイルしようとしgcc ./src/shallot.cましたが、次のエラーが発生しました:

/tmp/ccwsRxaV.o: In function `main':
shallot.c:(.text+0x3d): undefined reference to `usage'
shallot.c:(.text+0x1ea): undefined reference to `parse_cpuinfo'
shallot.c:(.text+0x2a3): undefined reference to `pattern'
shallot.c:(.text+0x2eb): undefined reference to `usage'
shallot.c:(.text+0x3ba): undefined reference to `usage'
shallot.c:(.text+0x440): undefined reference to `usage'
shallot.c:(.text+0x4de): undefined reference to `usage'
shallot.c:(.text+0x57a): undefined reference to `usage'
/tmp/ccwsRxaV.o:shallot.c:(.text+0x5f4): more undefined references to `usage' follow
/tmp/ccwsRxaV.o: In function `main':
shallot.c:(.text+0x92d): undefined reference to `worker'
shallot.c:(.text+0x941): undefined reference to `pthread_create'
shallot.c:(.text+0x984): undefined reference to `monitor_proc'
shallot.c:(.text+0x998): undefined reference to `pthread_create'
shallot.c:(.text+0x9b7): undefined reference to `worker'
shallot.c:(.text+0x9db): undefined reference to `pthread_join'

申し訳ありませんが、私はプログラマーではありません。これがどのように機能するのか、私にはよくわかりません。

4

1 に答える 1

2

さて、私はそのサイトに行き、指示を取り下げて試してみました. かなり簡単に思えます:

最初に、ソースを「shalot」ディレクトリにクローンします。

git clone https://github.com/katmagic/Shallot.git Shallot

次に、configure を実行します。

mike@linux-4puc:~/C/Shallot> ./configure
Liunx が検出されました。BSD への切り替えを検討しましたか?
構成が成功しました。 これは、それが構築されるという意味ではありません。
gcc または必要なライブラリ/ヘッダーが不足している場合は、まずそれらをインストールする必要があります。

最後に Makefile を実行します。

mike@linux-4puc:~/C/Shallot> make
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib  -Wall -o src/math.o -c src/math.c
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib  -Wall -o src/error.o -c src/error.c
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib  -Wall -o src/linux.o -c src/linux.c
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib  -Wall -o src/print.o -c src/print.c
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib  -Wall -o src/thread.o -c src/thread.c
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib  -Wall -o src/shallot.o -c src/shallot.c
cc  -O3 -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib -pthread src/math.o src/error.o src/linux.o src/print.o src/thread.o src/shallot.o -o shallot -lm -lpthread -lssl -lcrypto

これで、実行可能ファイルshallotがディレクトリに表示されます。

mike@linux-4puc:~/C/Shallot> ls
CHANGELOG  configure  LICENSE  Makefile  README.asciidoc  shallot  src

したがって、私が行ったのとまったく同じようにすべての手順に従った場合、問題が発生している場所は、上で強調表示したテキスト ブロックであると思われます。シャロットを構築するために必要なすべてのライブラリ/ヘッダーがありますか?

于 2013-02-05T20:47:23.523 に答える