como compilar o sorcecode do código fonte ls.c oficial?

0

Eu baixei o código-fonte oficial ls.c e tentei para compilá-lo com o gcc. O problema foi que o gcc me mostrou muitos erros.

$ gcc ls.c -o ls

ls.c:38:20: fatal error: config.h:

Consegui corrigir muitos desses erros pesquisando com o comando find em meus dicionários

$ find /usr/src/ -name "nameofthelibary" 2> /dev/null

para algumas bibliotecas eu encontrei o caminho correto, por exemplo, eu poderia colocá-los no #include <config.h> => #include </usr/src/linuxheader.../config.h> como eu mencionei este método funcionou para algumas bibliotecas, mas não para o cabeçalho, por exemplo #include "die.h"

então minha pergunta agora é: existe alguma maneira de compilar este ls.c? cz eu quero aprender como funciona, modificando-o

    
por qibra 13.11.2017 / 13:06

1 resposta

4

ls faz parte do pacote coreutils e, como tal, depende dos dois outros arquivos dentro do coreutils e das etapas de configuração. Você provavelmente poderia gastar muito tempo desenredando-a da biblioteca, mas, a menos que você esteja planejando compilar isso algumas centenas de vezes por dia, não acho que valha a pena.

Como pim disse nos comentários, você pode aprender sobre o processo completo de criação a partir de README.hacking file na raiz da árvore do git. Eu corri o seguinte sem realmente prestar muita atenção, mas é isso que funcionou para mim.

sudo apt install git build-essential
sudo apt build-dep coreutils

git clone git://git.savannah.gnu.org/coreutils.git
cd coreutils

./bootstrap  # grabs submodules, sets up configuration
./configure  # does actual compiler configuration

make clean  # remove old attempts
make -j8  # compile using 8 threads (you might want to alter this)

Isso compilará tudo no diretório src e deixará os binários lá. Você pode executar o seu recém compilado ls com ./src/ls . Você pode fazer alterações e contanto que elas sejam leves, você pode recompilá-las com apenas as make etapas.

    
por Oli 13.11.2017 / 13:40