アプリ版:「スタンプのみでお礼する」機能のリリースについて

以前CentOS6.6を使用しており、他の環境もいろいろ使ってみたいと思い、Ubuntu14.10の環境を構築しました。
CentOSでX11を用いて画像を表示するプログラムがあったのですが、それをそのままUbuntuにうつして実行してもエラーが出てできませんでした。
もちろんUbuntuにおいて、X11ライブラリのインストールはしましたし、コンパイルにはMakefileを用いてやっておりますが、-lX11のオプションも通してあります。
しかし、
xdisp.c:52: `XOpenDisplay' に対する定義されていない参照です
など、他の関数に対してもX11に関しては未定義のような挙動を見せます。
これはsqrt関数(math.h)に関しても同様のことが起こりました。
原因が分かる方いましたらよろしくお願いします。

質問者からの補足コメント

  • 返事遅れましてすみません。

    回答していただいたプログラムを作成してコンパイルしたところ何も問題はありませんでした。
    関数の参照ができないというエラーばかりですが、最後にこういったエラーもでました。
    collect2: error: ld returned 1 exit status
    Makefile:17: recipe for target 'Pose' failed
    make: *** [Pose] Error 1

    多分全部作り直したらコンパイル通りそうな気もするのですが・・・。
    全部ファイルコピペで互換性?の問題でリンカがうまくいっていないということでしょうかね。
    そうだとするとじゃあ何故かという説明はまったくできないので違うとは思いますが。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/02/27 15:49

A 回答 (2件)

あれがコンパイルできるってことは, とりあえず


「これはsqrt関数(math.h)に関しても同様のことが起こりました。」
については「コンパイル環境の問題ではない」ことがほぼ確定だな.

で, 「最後にこういったエラーもでました」って言われても, それでは問題の解決にはなんら役にたたないことはわかるね? むしろ「関数の参照ができないというエラー」よりも前のメッセージが重要なんだよ.
    • good
    • 0

他にメッセージはないのかな?



とりあえず X は後まわしにして sqrt について考えてみるけど, 例えば
#include <stdio.h>
#include <math.h>

int main()
{
printf("sqrt(4.0) = %f\n", sqrt(4.0));
return 0;
}
というプログラムを sq.c という名前で作って
gcc -o sq sq.c -lm
でコンパイルしたらどんなメッセージが出るのか, 一字一句そのまま書いてもらえますか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!