• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[C++] Błędy linkera podczas pracy z biblioteką enumers

Object Storage Arubacloud
0 głosów
427 wizyt
pytanie zadane 3 maja 2019 w C i C++ przez wojtij99 Użytkownik (630 p.)
edycja 3 maja 2019 przez wojtij99
Witam!

Mam problem z kompilacją projektu z biblioteką enumers.

Przykładowy plik dołączony do plików biblioteki działa poprawnie. Po przeklejeniu jego kodu do projektu mój kompilator (a w zasadzie linker) wyświetla mi taki błąd "error LNK2001: nierozpoznany symbol zewnętrzny ..." i tak 10 razy.

Przykład: 1>Terminal.obj : error LNK2001: nierozpoznany symbol zewnętrzny "public: static bool __cdecl CEnumerateSerial::UsingCreateFile(class std::vector<unsigned int,class std::allocator<unsigned int> > &)" (?UsingCreateFile@CEnumerateSerial@@SA_NAAV?$vector@IV?$allocator@I@std@@@std@@@Z)

Korzystam z Visual Studio i jego domyślnego kompilatora.

Z góry dziękuje za odpowiedź!

2 odpowiedzi

0 głosów
odpowiedź 3 maja 2019 przez mokrowski Mędrzec (155,460 p.)
Przy tak enigmatycznym błędzie, enigmatyczna odpowiedź. Nie dołączyłeś do projektu linkowania biblioteki z wymienionymi symbolami.
komentarz 3 maja 2019 przez wojtij99 Użytkownik (630 p.)

linkowanie z tego co widziałem w przykładzie to po prostu:

#include "stdafx.h"
#include "enumser.h"

i tyle 

komentarz 3 maja 2019 przez mokrowski Mędrzec (155,460 p.)

To nie jest linkowanie. To jest wyłącznie dołączenie nagłówków. W trakcie kompilacji ostatecznego programu, kompilator powinien otrzymać informację z jaką biblioteką binarną powinien konsolidować. Z racji tego że to VS, przeczytaj jak skonsolidować program z odpowiednim plikiem *.dll

 

komentarz 3 maja 2019 przez wojtij99 Użytkownik (630 p.)
tyle że do tej biblioteki są tylko pliki *.h *.cpp bez żadnych *.dll
komentarz 3 maja 2019 przez Chess Szeryf (76,710 p.)

https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2019

Biblioteka .dll to taka, w której są np. funkcje. Funkcja taka może być potrzebna właśnie do "skonfigurowania" zewnętrznych bibliotek, tutaj biblioteki 'enumers'.

https://docs.microsoft.com/en-us/cpp/build/dlls-in-visual-cpp?view=vs-2019

komentarz 3 maja 2019 przez wojtij99 Użytkownik (630 p.)

jak już pisałem powinna działać bez żadnych dll.

może pomoże wam link to strony tej biblioteki http://www.naughter.com/enumser.html

0 głosów
odpowiedź 3 maja 2019 przez j23 Mędrzec (194,920 p.)

Dodaj do projektu plik enumser.cpp.

komentarz 4 maja 2019 przez wojtij99 Użytkownik (630 p.)
był dodany tak jak i reszta plików
komentarz 4 maja 2019 przez j23 Mędrzec (194,920 p.)

A jak dodałeś ten plik? Pytam, bo błąd ewidentnie wskazuje, że konsolidator nie może znaleźć implementacji CEnumerateSerial::UsingCreateFile, która jest we wspomnianym pliku źródłowym (no chyba że masz zdefiniowane makro NO_CENUMERATESERIAL_USING_CREATEFILE. Tylko po co?).

Podobne pytania

0 głosów
2 odpowiedzi 123 wizyt
+1 głos
0 odpowiedzi 162 wizyt
pytanie zadane 2 sierpnia 2019 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
0 głosów
2 odpowiedzi 853 wizyt
pytanie zadane 20 stycznia 2019 w C i C++ przez wojtij99 Użytkownik (630 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...