Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-06-2011, 19:59   #1
Eddie1985
Senior Member
 
Iscritto dal: Oct 2004
Messaggi: 304
[C++/Assembly] problema di collegamento

salve
dunque ho messo nella stessa cartella i seguenti 3 files: prova1.cpp , cc.h e es1.s . I primi due file sono così fatti:

Codice:
// prova1.cpp

#include "cc.h"

int main()

{   st s = { 1,2,3,4, 1.0,2.0,3.0,4.0  };

    int v[4] = {10,11,12,13 };

    double d = 2.5;

    cl cc1(v); cc1.stampa();

    cc1.elab1(s, d); cc1.stampa();

    cout << d << endl;

}

Codice:
#include <iostream>

using namespace std;

struct st { int vv1[4]; double vv2[4]; };

class cl 

{	int a, b; st s;

public:

	cl(); cl(int v[]);

	void elab1(st ss, double& d);

	cl elab2(cl cc);

	void stampa()

	{	int i; cout << a << ' ' << b << endl;

		for (i=0;i<4;i++) cout << s.vv1[i] << ' '; cout << '\t';

		for (i=0;i<4;i++) cout << s.vv2[i] << ' '; cout << endl;

		cout << endl;

	}

};

Il file es1.s è in Assembly e non lo sto a riportare in quanto non è quello la causa del problema (almeno penso :P ).

Premesso questo quando do il comando:
gxx -o es1 -fno-elide-constructors es1.s prova1.cpp

mi da il seguente errore:
In function `main':
prova1.cpp.text+0xae): undefined reference to `cl::cl(int*)'
prova1.cpp.text+0x14f): undefined reference to `cl::elab1(st, double&)'
collect2: ld returned 1 exit status


Qualcuno sa dirmi come posso risolvere? Grazie
Eddie1985 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2011, 15:59   #2
Eddie1985
Senior Member
 
Iscritto dal: Oct 2004
Messaggi: 304
non mi sa aiutare nessuno?
Eddie1985 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2011, 16:34   #3
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Se non sbaglio è un errore di linking. Cioè hai dichiarato la tua funzione, ad esempio funzione1(int*) e per il compilatore non c'è nessun problema, ma quando poi il linker va ad unire il tutto, funzione1(int * var){codice} non la trova da nessuna parte!

Nel tuo caso cl(int*) e elab1(....) non riesce a trovare le loro implementazioni.

Ma conviene implementare una classe in un header? E' una domanda la mia perchè in C non è cosa buona e giusta implementare una funzione in un file header.
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2011, 16:53   #4
Eddie1985
Senior Member
 
Iscritto dal: Oct 2004
Messaggi: 304
Quote:
Originariamente inviato da clockover Guarda i messaggi
Se non sbaglio è un errore di linking. Cioè hai dichiarato la tua funzione, ad esempio funzione1(int*) e per il compilatore non c'è nessun problema, ma quando poi il linker va ad unire il tutto, funzione1(int * var){codice} non la trova da nessuna parte!

Nel tuo caso cl(int*) e elab1(....) non riesce a trovare le loro implementazioni.

Ma conviene implementare una classe in un header? E' una domanda la mia perchè in C non è cosa buona e giusta implementare una funzione in un file header.
si immaginavo anche io che il problema fosse una cosa del genere...solo che nn riesco a capire perchè....per quanto riguarda la convenienza nell'implementare una funzione in un file o meno, non mi sono posto il problema, perchè sono esercizi di esame, io devo fare solo il file es1.s, il resto lo devo lasciar stare così come è
Eddie1985 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Fare un fiocco è un’impresa per un robot...
Meta: Instagram userà l'IA per individua...
Starlink Mini 2 è ufficiale: batt...
Tutte le migliori offerte AliExpress con...
Singles' Day AliExpress, prezzi speciali...
Singles' Day AliExpress, console a prezz...
Singles' Day AliExpress, e-bike in offer...
Singles' Day AliExpress, hard disk e SSD...
Singles' Day AliExpress, da mezzanotte n...
iPhone 18e svelato in anticipo: ecco cos...
Rockstar ha un piano preciso per il mult...
Un iPhone Duo da oltre 65 mila dollari: ...
Anthropic: IPO tra 70 e 78 dollari, Goog...
SSHole in OpenSSH è già sfruttata: la CI...
Secure Future Group: il rischio cyber si...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v