-1

これはおそらく答えられていると思いますが、見つけることができません。「make」を使用して次のファイルをコンパイルする場合:

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

int main(void)
{
    // get line of text
string s = GetString();

// print string, one character per line
for (int i = 0; i < strlen(s); i++)
{
    char c = s[i];
    printf("%c\n", c);
}
return 0;
}

次のメッセージが表示されます。

$ make example
cc     example.c   -o example
Undefined symbols for architecture x86_64:
  "_GetString", referenced from:
      _main in example-iPNXBe.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [example] Error 1
4

1 に答える 1

6

cs50 ページから判断すると、おそらくコマンド-lcs50の最後に次のようなものが必要です。cc


または、cs50.oオブジェクト ファイルを使用してリンクすることもできます。

cc example.c cs50.o -o example
于 2014-02-27T20:36:54.340 に答える