Eu fiz uma construção pcc customizada fazendo o clássico ./configure && make -j$(nproc) && sudo make install
no pcc clonado de https://github.com/IanHarvey/pcc
.
Ele compila um arquivo C hello-world perfeitamente, mas ao contrário do pré-construído pcc
do repositório Ubuntu, ele falha ao vincular, exibindo a mensagem de erro:
ld: cannot find crtbegin.o: No such file or directory
ld: cannot find -lpcc: No such file or directory
error: ld terminated with status 1
Como faço para corrigir isso?
Editar:
Caro downvoter que não comenta e solicita muito: supere sua necessidade pedante de ter tudo explicado. Hoje em dia, as máquinas podem inferir que "compilar e vincular um arquivo hello-world" 99,9% significa executar:
$ pcc hw.c
(já que se trata de pcc) em algum hw.c:
#include <stdio.h>
int main(void){ puts("hello world"); return 0; }
Se as máquinas podem ser tão inteligentes (ou pelo menos pedir mais informações educadamente ), certamente as pessoas também podem.
O
pcc
repositório contém apenas o compilador principal. Você também precisa baixar, compilar e instalar opcc-libs
repositório em https://github.com/IanHarvey/pcc-libs . Isso inclui os arquivos padrão, libpcc, crtbegin e muito mais.É provável que o pacote Ubuntu tenha combinado os dois repositórios em um pacote ou tenha um como dependência do outro, por isso foi instalado automaticamente. O pacote EPEL 7 pcc os combina.