Visualizzazione dei risultati da 1 a 1 su 1

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    [C++] Compilazione da riga di comando

    Sto cercando di migliorare le mie conoscenze sul C++ e sto provando a non usare più un IDE nel quale selezionavo semplicemente "aggiungi file al progetto" e usare la riga da comando per compilare i file ma ritrovo un errore:

    codice:
    tomas@tomas-tobefilledbyoem:~/Desktop/Projects/test$ g++ test.cpp main.cpp -Wall -Wextra -pedantic-errors -std=c++2a
    /usr/bin/ld: /tmp/ccxpdImr.o: in function `main':
    main.cpp:(.text+0x2d): undefined reference to `Asd::A<int>::A(float)'
    collect2: error: ld returned 1 exit status
    I file sono:
    - test.hpp
    codice:
    #include <iostream>
    #ifndef TEST_HPP
    #define TEST_HPP
    namespace Asd {
    template <class T>
    class A {
    public:
        A(float num);
    };
    }
    #endif

    - test.cpp
    codice:
    #include "test.hpp"
    #include <iostream>
    namespace Asd {
    template <class T>
    A<T>::A(float num) {
            std::cout << static_cast<T>(num) << '\n'; // inserito solo per farmi compilare
    }
    }
    - main.cpp
    codice:
    #include "test.hpp"
    
    int main() {
        Asd::A<int> test {7.76};
        return 0;
    }
    Dove sbaglio?

    Grazie

    p.s. il problema non sta nel codice ma nella compilazione, non ho problemi se aggiungo tutto in un file o unisco test.cpp/.hpp
    Ultima modifica di zacca94; 30-03-2023 a 13:38
    Logiqo.org gestionale per perizie infortunistiche.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.