Como instalar a biblioteca c personalizada?

1

Eu só queria adicionar uma biblioteca c ao Ubuntu que foi criada pela Universidade de Harvard para o curso cs50. Eles forneceram instruções sobre como instalar a biblioteca listada abaixo.

Debian, Ubuntu

Primeiro, torne-se root, como em:

sudo su -

Em seguida, instale a Biblioteca do CS50 da seguinte forma:

apt-get install gcc
wget http://mirror.cs50.net/library/c/cs50-library-c-3.1.zip
unzip cs50-library-c-3.1.zip
rm -f cs50-library-c-3.1.zip
cd cs50-library-c-3.1
gcc -c -ggdb -std=c99 cs50.c -o cs50.o
ar rcs libcs50.a cs50.o
chmod 0644 cs50.h libcs50.a
mkdir -p /usr/local/include
chmod 0755 /usr/local/include
mv -f cs50.h /usr/local/include
mkdir -p /usr/local/lib
chmod 0755 /usr/local/lib
mv -f libcs50.a /usr/local/lib
cd ..
rm -rf cs50-library-c-3.1

Eu fiz exatamente como indicado. Mas o compilador relatou "Referência indefinida para uma função" - a função era Get String. Então, eu procurei por uma solução e encontrei uma. Ele disse para usar a opção -l .

Agora, quando eu compilo eu uso algo como:

gcc –o hello.c ola –lcs50

(não me lembro do comando exato).

No entanto, não consigo usar o comando make , que é mais fácil de usar.

Eu entendo que há algum problema em vincular a biblioteca. O que é uma boa solução para este problema?

    
por arijit 10.03.2012 / 12:27

2 respostas

2

Também estou usando o CS50 e tenho o mesmo problema. Depois de seguir as instruções do Cs50, recebo este erro ao compilar o código usando gc

/tmp/ccvUiSKS.o: In function 'main':
Goodmario.c:(.text+0x21): undefined reference to 'GetInt'
collect2: error: ld returned 1 exit status

Eu segui as instruções para o exato. Eu acredito que você deve continuar usando -lcs50, não é mais difícil. por exemplo. O comando que eu uso para compilar um programa

gcc Goodmario.c -o Goodmario -std=c99 -lcs50

Não é muito difícil: D

    
por user104102 03.11.2012 / 04:17
2

você deve adicionar o seguinte comando para fazer o GetInt funcionar:

$ gcc hello.c -I / usr / local / include -L / usr / local / lib -lcs50 -o ola

renomeie "hello.c # e" olá "com seu arquivo de entrada e seu nome de saída desejado. A opção -I / usr / local / include diz ao gcc para também procurar em / usr / local / include por arquivos de cabeçalho. A opção -L / usr / local / lib informa ao gcc (na fase de vinculação) para também procurar por bibliotecas em / usr / local / lib, e a opção -lcs50 diz ao gcc quais bibliotecas você precisa.

fonte: ubuntuforum.org

    
por bagustris 25.11.2012 / 05:57