Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [G++] Compilare ma non linkare

    Ho scritto un programma in c++ per mostrare il classico hello world
    Sto lavorando su linux ed uso g++ per compilare.

    Ho bisogno di linkare questo file separatamente. Quindi uso -c nelle opzioni del compilatore:
    codice:
    gcc helloworld.cpp -c
    e mi ritrovo helloworld.o
    Ora per linkare eseguo
    codice:
    ld helloworld.o helloworld2.o helloworld3.o
    Come prevedibile mi ritrovo:
    codice:
    ld: warning: cannot find entry symbol _start; defaulting to 00000000080481ac
    helloworld.o: In function `__static_initialization_and_destruction_0(int, int)':
    helloworld.cpp:(.text+0x23): undefined reference to `std::ios_base::Init::Init()'
    helloworld.cpp:(.text+0x2b): undefined reference to `__dso_handle'
    helloworld.o: In function `__tcf_0':
    helloworld.cpp:(.text+0x6c): undefined reference to `std::ios_base::Init::~Init()'
    helloworld.o: In function `main':
    helloworld.cpp:(.text+0x8e): undefined reference to `std::cout'
    helloworld.cpp:(.text+0x93): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
    main.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
    Se fosse stato in C, avrei linkato con
    codice:
    ld helloworld.o helloworld2.o helloworld3.o -lc
    -lc sta ad indicare includi libc.

    Nel caso del c++, che libreria devo includere?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Prova ad usare g++ invece di gcc.

  3. #3
    ops ho scritto su di usare g++ per compilare, ma mentre scrivevo il post l'istinto mi ha fatto scrivere gcc. Comunque uso g++

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Mostra il codice.

  5. #5
    #include <iostream>
    using namespace std;

    int main() {
    cout << "Hello World";
    }

    tutto qui. Gli altri file sono vuoti.

  6. #6

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.