C ++ GNU Linker Chyby

hlasů
2

Snažím se complie můj program v systému Windows pomocí Cygwin pomocí příkazu kompilace:

g++ ping.cpp -I./include -L./lib -lchartdir50

Jsem pomocí API s názvem ChartDirector která čerpá grafy pro mě. Nikdy jsem spojen knihoven tudy před (obvykle to dělám přes Visual Studio), takže jsem k tomu trochu nové. Mám opravdu velký seznam chyb, takže nebudu seznam je všechny, ale budu seznamu jeden právě objasnit druh chyb spojovacích Začínám:

(.text$_ZN9BaseChartD1Ev[BaseChart::~BaseChart()]+0x4f): undefined reference to '_CBaseChart_destroy'

Všechny z nich jsou nedefinovaný odkaz na ‚XXX‘ chyb.

Mám spoustu hlavičkových souborů v ./include a knihovna s názvem chartdir50.lib v ./lib

Co se stalo s mým kompilace řádku?

Položena 27/11/2009 v 07:06
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
1

Hmm ... to je divné. Jsem pomocí 64-bitový systém, ale z nějakého důvodu jsem to zkusil s 32bitové knihovny a sestavují. Dík!

Odpovězeno 27/11/2009 v 09:34
zdroj uživatelem

hlasů
1

Že knihovny, než jsem nikdy použít, ale když jsem googled to, jsem si všiml, že ostatní lidé se snaží jako -lchartdir místo -lchartdir50 , takže byste měli zkusit.

Odpovězeno 27/11/2009 v 08:32
zdroj uživatelem

hlasů
1

Nejsem si jistý, ale .libbyly sestaveny s Visual C ++?

Pokud ano, já si nemyslím, že je kompatibilní s GCC, budete muset sestavit knihovnu s GCC / G ++ a tento soubor použít nebo použít kompatibilní binární, pokud nemají přístup ke zdroji.

Odpovězeno 27/11/2009 v 07:11
zdroj uživatelem

hlasů
0

I za předpokladu, že lib byl vytvořen s gcc také.

Pokud vím lib je statická knihovna, takže nemusíte tak, aby odkazoval se -l přepínač kompilátor.

Stačí použít ji jako jiný soubor v příkazovém řádku, jako je

g ++ ping.cpp -I./include -L./lib {cesta k lib zde} /chartdir50.lib

hth.

Odpovězeno 27/11/2009 v 08:26
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more