Issue:
Trying to compile an Adobe Acrobat API plugin (C++) , I got these LINK error
Error 2 error LNK2019: unresolved external symbol "int __cdecl url_fclose(struct fcurl_data *)" (?url_fclose@@YAHPAUfcurl_data@@@Z) referenced in function "public: char * __thiscall CAdminData::readScriptFromURL(class Str)" (?readScriptFromURL@CAdminData@@QAEPADVStr@@@Z) AdminData.obj
Error 2 error LNK2019: unresolved external symbol "int __cdecl url_fclose(struct fcurl_data *)" (?url_fclose@@YAHPAUfcurl_data@@@Z) referenced in function "public: char * __thiscall CAdminData::readScriptFromURL(class Str)" (?readScriptFromURL@CAdminData@@QAEPADVStr@@@Z) AdminData.obj
Error 3 error LNK2019: unresolved external symbol "char * __cdecl url_fgets(char *,int,struct fcurl_data *)" (?url_fgets@@YAPADPADHPAUfcurl_data@@@Z) referenced in function "public: char * __thiscall CAdminData::readScriptFromURL(class Str)" (?readScriptFromURL@CAdminData@@QAEPADVStr@@@Z) AdminData.obj
Error 4 error LNK2019: unresolved external symbol "int __cdecl url_feof(struct fcurl_data *)" (?url_feof@@YAHPAUfcurl_data@@@Z) referenced in function "public: char * __thiscall CAdminData::readScriptFromURL(class Str)" (?readScriptFromURL@CAdminData@@QAEPADVStr@@@Z) AdminData.obj
Error 5 error LNK2019: unresolved external symbol "struct fcurl_data * __cdecl url_fopen(char const *,char const *)" (?url_fopen@@YAPAUfcurl_data@@PBD0@Z) referenced in function "public: char * __thiscall CAdminData::readScriptFromURL(class Str)" (?readScriptFromURL@CAdminData@@QAEPADVStr@@@Z) AdminData.obj
Reason:
Since my Adobe Acrobat plugin was a C++ project whereas my custom DLL was written in C , my code could not compile without indicating explicitly my compiler to consider my included sources (.h header) as a C code piece.
#ifdef __cplusplus
extern "C" {
#endif
...
static int fill_buffer(URL_FILE *file,int want,int waittime);
static int use_buffer(URL_FILE *file,int want);
URL_FILE * url_fopen(const char *url,const char *operation);
int url_fclose(URL_FILE *file);
int url_feof(URL_FILE *file);
size_t url_fread(void *ptr, size_t size, size_t nmemb, URL_FILE *file);
char * url_fgets(char *ptr, int size, URL_FILE *file);
...
static int fill_buffer(URL_FILE *file,int want,int waittime);
static int use_buffer(URL_FILE *file,int want);
URL_FILE * url_fopen(const char *url,const char *operation);
int url_fclose(URL_FILE *file);
int url_feof(URL_FILE *file);
size_t url_fread(void *ptr, size_t size, size_t nmemb, URL_FILE *file);
char * url_fgets(char *ptr, int size, URL_FILE *file);
...
#ifdef __cplusplus
}
#endif
Aucun commentaire:
Enregistrer un commentaire