Bonjour,
J'ai voulu tester cette petite bibliothèque de socket : https://github.com/fpagliughi/sockpp sous l'environnement de travail Visual Studio 2019 sous win10.
J'ai donc clone le projet, utilisez cmake pour le monter en préparant une sortie en lib statique mais aussi dynamique ( dll ) puis direction vs2019 pour générer le projet en respectant la norme de langage demandé ( c++14 minimum ) comme précisé dans la doc. Jusqu'à la aucun problème tout se déroule normalement.
je créais un projet console juste derrière et récupère cet exemple : https://github.com/fpagliughi/sockpp...tcpechosvr.cpp pour vérifier que tout fonctionne correctement.
Je link bien entendu dans les options de configuration du projet la .lib généré précédemment suite au cmake + build dans vs2019 : ( éditeur de liens -> entrée : sockpp-static.lib ), je renseigne également ( éditeur de liens -> général ) : le répertoire de bibliothèques supplémentaires ou se situe la .lib
Je met en place les headers de cette bibliothèque dans mon projet, je démarre la génération du projet en console et voici la sortie de ma console d'erreur :
Je n'ai mit qu'une partie des erreurs étant donné que le reste est similaire. Je comprend bien qu'il y ait une erreur avec le linker de ma lib ou ma lib elle même mais, j'ai du mal a situé exactement le problème pour le corriger et la façon de le diagnostiquer précisément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 1>server.cpp 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_bind référencé dans la fonction "public: bool __cdecl sockpp::socket::bind(class sockpp::sock_address const &)" (?bind@socket@sockpp@@QEAA_NAEBVsock_address@2@@Z) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_closesocket référencé dans la fonction "private: bool __cdecl sockpp::socket::close(unsigned __int64)" (?close@socket@sockpp@@AEAA_N_K@Z) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_ioctlsocket référencé dans la fonction "public: bool __cdecl sockpp::socket::set_non_blocking(bool)" (?set_non_blocking@socket@sockpp@@QEAA_N_N@Z) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_getpeername référencé dans la fonction "public: class sockpp::sock_address_any __cdecl sockpp::socket::peer_address(void)const " (?peer_address@socket@sockpp@@QEBA?AVsock_address_any@2@XZ) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_getsockname référencé dans la fonction "public: class sockpp::sock_address_any __cdecl sockpp::socket::address(void)const " (?address@socket@sockpp@@QEBA?AVsock_address_any@2@XZ) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_getsockopt référencé dans la fonction "public: bool __cdecl sockpp::socket::get_option(int,int,void *,int *)const " (?get_option@socket@sockpp@@QEBA_NHHPEAXPEAH@Z) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_setsockopt référencé dans la fonction "public: bool __cdecl sockpp::socket::set_option(int,int,void const *,int)" (?set_option@socket@sockpp@@QEAA_NHHPEBXH@Z) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_shutdown référencé dans la fonction "public: bool __cdecl sockpp::socket::shutdown(int)" (?shutdown@socket@sockpp@@QEAA_NH@Z) 1>sockpp-static.lib(socket.obj) : error LNK2019: symbole externe non résolu __imp_socket référencé dans la fonction "public: static class sockpp::socket __cdecl sockpp::socket::create(int,int,int)" (?create@socket@sockpp@@SA?AV12@HHH@Z) 1>sockpp-static.lib(stream_socket.obj) : error LNK2001: symbole externe non résolu __imp_socket 1>sockpp-static.lib(connector.obj) : error LNK2001: symbole externe non résolu __imp_socket
Est-ce :
- Des erreurs de la lib elle même, qui est mal générée suite au cmake au départ ?
- Des erreurs dans l'inclusion au projet de cette dernière ? Aie-je oublié des choses ?
Comment procéder par étape pour diagnostiquer et régler le problème ?
Merci par avance.
Partager