Se você deseja instalar o garfo CS50 baseado em C da Biblioteca Portátil de Stanford, você pode instalá-lo executando estes comandos em um terminal ( Ctrl + Alt + T ):
# Install build dependencies and set up /usr/local/src for administrators.
sudo apt-get update && sudo apt-get install build-essential openjdk-7-jdk git
cd /usr/local/src && sudo chgrp sudo . && sudo chmod g+w,+t .
# Retrieve, configure, build, test, and install the library.
git clone git://github.com/cs50/spl.git && cd spl
make SHELL=/bin/bash
build/tests/TestStanfordCSLib
sudo make SHELL=/bin/bash install
SHELL=/bin/bash é necessário, pelo menos para a etapa make install , porque o Makefile usa um recurso presente em bash ( expansão de chaves ) mas não presente em o padrão do Ubuntu /bin/sh (que é dash ).
-
A execução de
sudo make installem vez desudo make SHELL=/bin/bash installproduzirá o erro:cp: cannot stat ‘build/lib/{libcs.a,spl.jar}’: No such file or directory Makefile:320: recipe for target 'install' failed -
Em as instruções de criação , que no momento da redação deste texto não foi atualizado com um procedimento para o Ubuntu, os usuários do Fedora são instruídos a executar
sudo make install. Isso funciona no Fedora , mas não no Ubuntu, porque o/bin/shdo Fedora é fornecido porbash.
Depois de criar e instalar a biblioteca usando essas etapas, dois novos arquivos existirão em /usr/local/lib : libcs.a e spl.jar . Para usar a biblioteca de programas em C, crie um link para libcs.a .
Se você deseja instalar A Biblioteca Portátil de Stanford para C ++ , você pode fazer isso executando estes comandos em um terminal ( Ctrl + Alt + T ):
# Install build dependencies and set up /usr/local/src for administrators.
sudo apt-get update && sudo apt-get install build-essential openjdk-7-jdk
cd /usr/local/src && sudo chgrp sudo . && sudo chmod g+w,+t .
# Retrieve, configure, build, and test the library.
wget https://cs.stanford.edu/people/eroberts/StanfordCPPLib/cpplib.zip
unzip cpplib.zip && cd cpplib
make
./TestStanfordCPPLib
Esse procedimento funcionou para mim e o executável de teste foi executado com êxito. Veja o conteúdo do arquivo README no arquivo cpplib para informações adicionais. Geralmente, para criar software a partir da origem, há uma etapa ./configure antes de executar make ; o README esclarece que, para construir este software, basta executar make .
Assumindo que make foi bem-sucedido, criou:
- um arquivo de biblioteca estaticamente vinculável
.a,lib/libStanfordCPPLib.a, que é provavelmente o que você vinculará a seus programas - arquivos de objeto estaticamente vinculáveis no subdiretório
objdecpplib
Além de vincular-se ao arquivo .a (como normalmente é feito), parece que uma maneira de usar a biblioteca é vincular esses arquivos .o aos seus programas. O conteúdo de Makefile , especialmente em # Test program , mostra como fazer isso.
O arquivo .a parece ter todos esses .o arquivos vinculados a ele, portanto, você não deve ter que usar os arquivos .o individuais, a menos que prefira fazer isso ou precise produzir um número estatisticamente executável vinculado.
(Se você precisar criar uma biblioteca compartilhada - ou seja, um arquivo .so - em vez de um estático, sugiro editar sua pergunta para adicionar informações sobre isso. Não sei como criar o cpplib em desta forma, mas outros podem ser capazes de responder isso.)