Articles of gcc

O auto como parâmetro em uma function regular é uma extensão do GCC 4.9?

O gcc 4.9 permite o seguinte código, mas o gcc 4.8 e o clang 3.5.0 o rejeitam. void foo(auto c) { std::cout << c.c_str(); } Eu recebo warning: ISO C++ forbids use of ‘auto’ in parameter declaration [-Wpedantic] em 4.9, mas em 4.8 e clang recebo error: parameter declared ‘auto’ .

O compilador tem permissão para otimizar as alocações de memory de heap?

Considere o seguinte código simples que faz uso de new (estou ciente de que não há delete[] , mas não pertence a essa pergunta): int main() { int* mem = new int[100]; return 0; } O compilador tem permissão para otimizar a new chamada? Na minha pesquisa, o g ++ (5.2.0) e o Visual Studio […]

Verificação do limite do GCC STL

Como faço para ativar a verificação de limite para operator[] e iteradores?

Adicionando sublinhados à símbolos de assembly com o GCC no Win32?

Eu tenho um pedaço de código C que chama uma function definida na assembly. Por exemplo, digamos que foo.c contenha: int bar(int x); /* returns 2x */ int main(int argc, char *argv[]) { return bar(7); } E bar.s contém a implementação de bar () no assembly x86: .global bar bar: movl 4(%esp), %eax addl %eax, […]

Por que o typeid.name () retorna caracteres estranhos usando o GCC e como imprimir nomes não-manipulados?

Por que quando eu corro este main.cpp : #include #include using namespace std; struct Blah {}; int main() { cout << typeid(Blah).name() << endl; return 0; } Compilando-o com a versão 4.4.4 do GCC: g++ main.cpp Eu entendi isso: 4Blah No Visual C ++ 2008, gostaria de receber: struct Blah Existe uma maneira de fazer […]

como vincular biblioteca estática na biblioteca dinâmica no gcc

Em gcc (g ++), eu compilei uma biblioteca estática .a (chame-a de some_static_lib.a ). Eu quero ligar (é a frase certa?) Este arquivo .a em outra biblioteca dinâmica (chame-a de libsomeDyn.so ) que estou construindo. Embora o .so compile, não vejo o conteúdo de .a sob o comando .so usando o comando nm : / […]

Posso usar o C ++ 11 com o Xcode?

Estou considerando o uso de alguns resources do C ++ 11 (como o auto por exemplo) em alguns projetos de plataforma cruzada (Windows + Mac). No Windows, o Visual Studio suporta partes do próximo padrão C ++ 11 que me permitiria simplificar partes da base de código, então naturalmente eu estaria interessado em começar a […]

Como compilar um binário de 32 bits em uma máquina linux de 64 bits com o gcc / cmake

É possível compilar um projeto em 32 bits com cmake e gcc em um sistema de 64 bits ? Provavelmente é, mas como faço isso? Quando eu tentei o caminho “ignorante”, sem configurar nenhum parâmetro / flags / etc, apenas definindo LD_LIBRARY_PATH para localizar as bibliotecas vinculadas em ~/tools/lib ele parece ignorá-lo e procurar apenas […]

Como posso dizer ao gcc para não inline uma function?

Digamos que eu tenha essa pequena function em um arquivo de origem static void foo() {} e eu construo uma versão otimizada do meu binário, mas eu não quero essa function embutida (para fins de otimização). Existe uma macro que posso adicionar em um código-fonte para evitar o inlining?

Como faço para forçar o / gcc a me mostrar os comandos?

Eu estou tentando depurar um problema de compilation, mas não consigo obter o GCC (ou talvez seja make ??) para me mostrar os comandos reais do compilador e do vinculador que está sendo executado. Aqui está a saída que estou vendo: CCLD libvirt_parthelper libvirt_parthelper-parthelper.o: In function `main’: /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:102: undefined reference to `ped_device_get’ /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:116: undefined reference […]