1

私はプログラミングは初めてではありませんが、専門家にもほど遠いです。ハーバード オンラインから CS50 を取得しており、cs50 アプライアンス (Fedora 仮想マシン バージョン 19-2) 内で自動的に動作するはずの cs50 ライブラリの関数を使用しようとしています。私の問題は、#include <cs50.h>彼が講義で行っているようにコンパイルすると、エラーメッセージが表示されることです。

これは、講義スライドからの簡単なプログラムです。

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    // ask user for input
    printf("Give me an integer: ");
    int x = GetInt();
    printf("Give me another integer: ");
    int y = GetInt();

    // do the math
    printf("The sum of %i and %i is %i!\n", x, y, x + y);
}

これは私が得るエラーメッセージです:

jharvard@appliance (~/Dropbox/pset-1): ls
adder.c  even-odd.c  hello
jharvard@appliance (~/Dropbox/pset-1): clang -o adder adder.c
/tmp/adder-iuV3am.o: In function `main':
adder.c:(.text+0x19): undefined reference to `GetInt'
adder.c:(.text+0x32): undefined reference to `GetInt'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
jharvard@appliance (~/Dropbox/pset-1): 

私の推測では、何らかの理由でライブラリが見つからないということです。誰もがすべてを話すために何をする必要があるか考えていますか?

cs50.c ファイルの使用に関する回答で他の質問を検索しましたが、オールインワン アプライアンスではなく、自分のマシンでコンパイルしようとしている人からのものだと思います。

4

4 に答える 4

3

次のいずれかを実行して、コンパイラにライブラリにリンクするように指示する必要があります

clang -lcs50 -o adder adder.c

または単に

make adder

彼らはすでにあなたのために構成されているからです。

于 2014-05-20T00:19:29.283 に答える