Articles of linker

g ++ ligando dependência de ordem ao ligar o código c ao código c ++

Antes de hoje, sempre acreditei que a ordem em que os objects e bibliotecas eram passados ​​para o g ++ durante o estágio de vinculação não era importante. Então, hoje, eu tentei link do código c ++ para o código c. Enfiei todos os headers C em um bloco externo “C”, mas o vinculador ainda […]

Referência indefinida para ‘pthread_create’ – ordem de opção do comando linker (bibliotecas antes / depois dos arquivos de objects?)

Quando tento compilar isso, recebo um erro específico. Mas não é possível porque uso a bandeira certa. No server.c existe a biblioteca pthread.h . Então, como posso resolver meu problema de vinculação? Estou usando o Linux (Ubuntu). make gcc -c -Wall -Wunused -ansi -pedantic -ggdb -o Server1.o Server.c gcc -c -Wall -Wunused -ansi -pedantic -ggdb […]

Compilação falha com “relocação R_X86_64_32 contra` .rodata.str1.8 ‘não pode ser usada ao fazer um object compartilhado ”

Eu estou tentando compilar este código-fonte do makefile em um VPS, mas não está funcionando. O VPS é um 64 Cent OS Aqui está o erro completo # make gcc -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/amx/*.c g++ -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/*.cpp g++ -c -O3 -w -DLINUX -I../SDK/amx/ *.cpp g++ -O2 -fshort-wchar -shared -o […]

Vinculando-se a uma versão antiga da libc para fornecer maior cobertura de aplicativos

Os binários do Linux geralmente são vinculados dinamicamente à biblioteca principal do sistema (libc). Isso mantém a pegada de memory do binário muito pequena, mas os binários que dependem das bibliotecas mais recentes não serão executados em sistemas mais antigos. Por outro lado, os binários vinculados a bibliotecas antigas serão executados com alegria nos sistemas […]

Erro LNK2019: símbolo externo não resolvido _main referenciado na function ___tmainCRTStartup

Eu não sei o que há de errado com isso .. Eu não consigo encontrar onde o erro está, comentando a implementação não resolve o erro também. Arquivo de header #ifndef MAIN_SAVITCH_SEQUENCE_H #define MAIN_SAVITCH_SEQUENCE_H #include // Provides size_t namespace main_savitch_3 { class sequence { public: // TYPEDEFS and MEMBER CONSTANTS typedef double value_type; typedef std::size_t […]

Pequeno programa Haskell compilado com o GHC em um binário enorme

Mesmo os programas Haskell trivialmente pequenos se transformam em executáveis ​​gigantescos. Eu escrevi um pequeno programa, que foi compilado (com GHC) para o binário com o tamanho estendendo 7 MB! O que pode fazer com que até mesmo um pequeno programa Haskell seja compilado para o enorme binário? O que posso fazer para reduzir isso?

ld não consegue encontrar uma biblioteca existente

Eu estou tentando ligar uma aplicação com g + + neste sistema Debian lenny. ld está reclamando que não pode encontrar bibliotecas especificadas. O exemplo específico aqui é o ImageMagick, mas estou tendo problemas semelhantes com algumas outras bibliotecas também. Eu estou chamando o linker com: g++ -w (..lots of .o files/include directories/etc..) \ -L/usr/lib […]

Como imprimir o caminho de pesquisa do ld (linker)

Qual é a maneira de imprimir os caminhos de pesquisa que foram procurados por ld na ordem que ele pesquisa.

O que a realocação de R_X86_64_32S e R_X86_64_64 significa?

Obtive o seguinte erro quando tentei compilar um aplicativo C no FreeBSD de 64 bits: realocação R_X86_64_32S não pode ser usado ao fazer um object compartilhado; recompilar com -fPIC O que é a realocação R_X86_64_32S e o que é R_X86_64_64 ? Eu pesquisei sobre o erro, e é possíveis causas – Seria ótimo se alguém […]

O que é __gxx_personality_v0 para?

Esta é uma pergunta de segunda mão de um site de desenvolvimento de SO, mas me deixou curiosa, já que não consegui encontrar uma explicação decente em lugar algum. Ao compilar e vincular um programa C ++ independente usando o gcc, às vezes ocorre um erro de vinculador como este: out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0′ […]