2011-01-26 6 views
1

これで数時間のautotoolsを手動で設定した後、私は最終的に自分のプロジェクトのmakefileを作成することができました。問題のみ?それは私にリンカーの問題をもたらします。automakeとリンクに関する問題

私はそれをよりうまく説明しましょう:私はいくつかのサブプログラムに分割されたプロジェクトを持っています。これらのプロジェクトはすべてメインプログラムmain.cにリンクされています。私の問題は、gccですべてを正しくコンパイルすることができますが、makeは恐ろしいcollect2を返します。ldは1つの終了ステータスエラーを返し、理由としてmainへの未定義参照を命名しました。さて、私たちは皆それがリンクエラーであることを知っています。その証拠として、Makefile.amのCFLAGSの中に-cを追加することなく、すべてのファイルをコンパイルすることができました。しかし、私たちはすでにそれを知っていたと思います。

私の質問は、Makefile.am(私のsrcフォルダ内のファイルですか?)ファイルに、すべてのファイルを別々に、そして別々にはリンクしないようにするために、リンカmain.oにエントリポイントがありますか?基本的には、 "gcc program1.c program2.c main.c"を実行するのと同じです。私はautomakeがそれを行うことを知っています。なぜなら、それはファイルを段階的に構築しているからです。そして、私はそれが愚かな質問だと知っていますが、とにかく私を狂わせてしまいます。私がオートツールを使うのは初めてです。

答えて

2

fooは、あなたのプログラムの名前で、あなたは空想何もしていない場合、

bin_PROGRAMS = foo 
foo_SOURCES = program1.c program2.c main.c 
foo_LDADD = # any other libraries go here as -l arguments 

は十分Makefile.amでなければなりません。

+0

これは、ありがとう! – Charles

関連する問題