Ошибка компилятора gcc: «не удается найти -lcs50 collect2: Id вернул 1 состояние выхода» - PullRequest
0 голосов
/ 01 октября 2011

У меня проблема с языком 'c' при компиляции с gcc.

  1. Я использую "Cygwin" с (gcc-core, gcc-g ++, gdb, make и другими вспомогательными пакетами)внутри windows xp.
  2. Я установил "Cygwin" по этому пути "C: \ Cygwin \".
  3. Мой домашний каталог: "C: \ Cygwin \ home \ Bhanu Pratap"
  4. Я скопировал «cs50.h» и «cs50.c» в мой рабочий каталог, который также находится в «C: \ Cygwin \ home \ Bhanu Pratap».

Это код внутри моегоhello.c file

#include "cs50.h"
#include <stdio.h>
int
main(void){
  string name = "David";
  printf("O hai, %s!\n", name);
}

Это команда под bash (Cygwin)

gcc -o hello hello.c -lc50

Я получаю эту ошибку:

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/id: cannot find -lcs50
collect2: Id returned 1 exit status

Пожалуйста, помогите мне, где янеправильно?

Ответы [ 4 ]

2 голосов
/ 22 марта 2013

Я также использую файл библиотеки cs50, и я заметил в коде, который вы использовали:

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

, а также эта команда:

gcc -o hello hello.c -lc50

просто удивился, почему вы использовали кавычки вместо '<>' и последняя часть команды -lc50

мы обычно используем это следующим образом:

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

и -lcs50

надеюсь, это поможет \ m /

1 голос
/ 12 ноября 2014

Я использую компилятор DJGPP (gcc) в Windows XP для CS50 edX.

Я пробовал разные решения из ответов, но ни один из них не помог мне (хотя Мат дал мне подсказку).

Вот решение:

1) скопируйте cs50.h и cs50.c из library50-c-5.zip в каталог, где находится исходный файл .c, который вы хотите скомпилировать.

2) введите в исходный файл .c: #include "cs50.h"

3) скомпилируйте исходный файл .c (например, в командной строке cmd.exe): gcc custom.c -o custom cs50.c

Вы можете скопировать cmd.exe из папки "` C: \ WINDOWS \ system32"в вашу рабочую папку (с вашими файлами .c).В этом случае вам не нужно менять каталог для перехода к рабочим файлам при запуске окна командной строки.

0 голосов
/ 07 марта 2013

См. Ссылку http://manual.cs50.net для получения инструкций по установке библиотеки cs50.h. У них есть предварительно скомпилированная версия библиотеки cs50, которую можно загрузить и установить. Это стоит попробовать. Они использовали gcc для компиляции библиотеки и начали переключаться на clang, который также может создавать 64-битные совместимые библиотеки, что станет более полезным в будущем.

0 голосов
/ 01 октября 2011

Чтобы использовать -lcs50, вам сначала нужно собрать эту библиотеку (cs50) из ее исходного кода (cs50.c).

В качестве альтернативы вы можете просто:

gcc -o hello hello.c cs50.c

при условии, что cs50.c не имеет других зависимостей.

...