CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - curl i Visual c++ 2008. Problem przy linkowaniu :/

curl i Visual c++ 2008. Problem przy linkowaniu :/

problemy z funkcjonowaniem bibliotek, komponentów itp.

curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Slynx » poniedziałek, 31 stycznia 2011, 17:00

Mam nową zagadkę. W internecie jest strasznie mizernie na temat tego błędu, a tu z kolei nie forum Visuala, więc pewnie trochę się z tym pomęczę, jednak warto spróbować.

KOD cpp:     UKRYJ  
error LNK2028: unresolved token (0A000487) "extern "C" void * __cdecl curl_easy_init(void)" (?curl_easy_init@@$$J0YAPAXXZ) referenced in function "public: void __clrcall (...)


Jak widać błąd świeżo przy próbie inicjalizacji. Problemem jak widać jest to, że Visual wywołuje przez __cdecl, a funkcje w bibliotece curla są pod clrcall. By w ogóle skompilować z tymi bibliotekami musiałem zejść z clr:pure na clr (biblioteki boost chciały tego samego).

Jeśli ktoś wie jak to rozwiązać...
Zmiana "calling convention" odpada, bo zaraz funkcja główna zacznie "krzyczeć" :/
Miałem kiedyś takie błędy, kilka razy, ale już nie pamiętam co z tym robiłem (chyba coś przy dyrektywach pragma - extern c czy jakoś tak)
Może ktoś miał coś takiego lub się zna, bo bez biblioteki do obsługi sieci nie napiszę programu obsługującego sieć ;)
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez polymorphism » poniedziałek, 31 stycznia 2011, 19:03

A dodałeś odpowiedniego LIBa do projektu?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Slynx » poniedziałek, 31 stycznia 2011, 20:33

Do Linkera ? Tak, dostał wszystkie ścieżki do plików lib jakie znajdowały się w katalogu curla.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Cyfrowy Baron » poniedziałek, 31 stycznia 2011, 21:17

W przypadku niektórych bibliotek LIB nie wystarczy wskazać katalogu z tymi bibliotekami lecz trzeba włączyć wymagana bibliotekę do projektu poprzez menu Project -> Add to project lub dodać w pliku źródłowym pod sekcją include wpis:

KOD cpp:     UKRYJ  
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <shlobj.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

#pragma link "nazwa biblioteki.lib"

TForm1 *Form1;
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez polymorphism » poniedziałek, 31 stycznia 2011, 21:30

Slynx napisał(a):Do Linkera ?

Do projektu. Ustawienie ścieżki z LIBem nie rozwiązuje sprawy. W projekcie, w opcjach linkera (Linker -> Input -> Addictional dependencies) musisz dodać tę bibliotekę. Możesz ją także załączyć z poziomu kodu, w podobny sposób jak pokazał Baron:
KOD cpp:     UKRYJ  
#pragma comment (lib, "nazwa.lib")
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Slynx » poniedziałek, 31 stycznia 2011, 23:31

Ok, rzeczywiście, wystarczyło dodać tylko linijkę "#pragma comment (lib, "curllib.lib")"w kodzie i już mu wszystko odpowiada. A przyznam, że wyglądało to dość groźnie ; p

Myślałem, że przez Tools->VC Directories sam sobie doda. Jest tam podział na pliki include i library. Dodałem pod obydwie, wszystkie wymagane pliki, ale jak widać nie wystarczyło.
No mniejsza, dzięki za pomoc, mogę kontynuować.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Slynx » piątek, 18 lutego 2011, 21:03

Odświeżam temat, bo mam podobny problem. Mianowicie musiałem wyczyścić cały dysk i przeinstalować wszystko. Teraz zamiast Visuala 2008 mam 2010 i chciałem dodać te biblioteki curla od nowa. Zrobiłem wszystko tak samo i zaraz po kompilacji, przy uruchamianiu programu dostaje standardowe windowsowe okienko errora "The program can't start because curllib.dll is missing...", a biblioteki mam te same co wcześniej. W czym może być problem ?
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez polymorphism » piątek, 18 lutego 2011, 21:26

Ech, skopiuj DLL-kę do katalogu z programem.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Slynx » wtorek, 22 lutego 2011, 01:42

Teraz chce jakieś libsasl.dll, którego nie ma w pakiecie curla (wcześniej chciał jeszcze kilka innych to mu powrzucałem).
Chyba wiem o co chodzi, ale ja bardziej zadaje pytanie "dlaczego". Wcześniej po prostu wskazałem mu katalogi i było ok. A teraz jakieś błędy mimo, że wszystko to samo. A te dllki są chyba od dodatkowych bibliotek użytych przy kompilacji bibliotek curla. Ale pewien nie jestem.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez polymorphism » wtorek, 22 lutego 2011, 12:51

(...) ale ja bardziej zadaje pytanie "dlaczego"

Być może dlatego, że wcześniej miałeś już tę bibliotekę w systemie, teraz jej nie masz.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Cyfrowy Baron » wtorek, 22 lutego 2011, 12:56

Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: curl i Visual c++ 2008. Problem przy linkowaniu :/

Nowy postprzez Slynx » sobota, 19 marca 2011, 13:07

W ramach sprostowania, bo mam teraz trochę czasu i wróciłem do projektu - ta biblioteka którą podajesz oczywiście nie działa, nie ta wersja. I jak na razie nie mam pomysłów. Szukam bardziej jakiegoś upadate dla Visuala, może wtedy miałem coś zainstalowanego.
Jak ktoś ma jakiś konkretny pomysł... nadal przy uruchamianiu wyświetla o braku odpowiednich bibliotek.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox


Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości

cron