undefined reference to `_imp__WSAStartup@8'
Dobrý deň, chcel by som sa opýtať, totižto po spustení programu v bloku 3 mi začne vypisovať tento error. Zatiaľ som nič nemenil v kóde, chcel som vyskúšať, čo to spraví keď to prekopírujem.
Zrejme nemate spravne pridanu kniznicu na obsluhovanie sietovej komunikacie. Precitali ste si podrobne pokyny k vzorovym prikladom?
Skúšal som vložiť tie knižnice cez CMake list, ale ani to nepomohlo. Prekopíroval som celý program do Visual Studio Code a ten vykazuje tú istú chybu (screenshot vyššie). Prepísal som všetky úvodzovky tak aby ich program bral správne, znova som to skontroloval a stále píše to isté (undefined reference to '_imp__WSAStartup@8') Je možné, že by tá knižnica nebola v mojom počítači? Áno, knižnice includujem.
Skuste najst na disku tento subor Ws2_32.lib. Ten musite dostat do projektu.
Tak ani po niekolkych pokusoch, co som hladal riesenie, tak sa mi nepodarilo najst sposob, ako to spustit. Skusal som aj Code::Block, dokonca aj na druhom PC som skusal a vsade to vypisuje to iste. Nerozumiem tomu. Ani na internete sa mi nepodarilo najst odpoved.
v mojom pocitaci som nenasiel ziadny Ws2_32.lib a co som stiahol z internetu a vlozil do mojho projektu, tak ten tiez nic neurobil
Ak to pomoze, tak aj takto to vypisuje error
Viem Vás kontaktovať aj inak, ako cez forum?
Ten súbor pre gcc compiler (prostredia: Clion, CodeBlocks, (VScode), DevCpp) je libws2_32.a
Je umiestnení niekde v podpriečinkoch, kde si inštaloval MinGW, napr.: C:\MinGW\x86_64-w64-mingw32\lib
Niekedy nestačí len pridať knižnicu, ale treba aj uviesť cestu k nej.
Neviem ako je to pre CMakeLists v Clion (nastavenie priečinka knižníc), ale keď dáš všeobecne build v cmd/termináli, tak prepínač -l (malé L) nastavuje knižnicu a prepínač -L cestu k nej, čiže nejak:
___/gcc.exe -g ___/main.c -o ___/main.exe -L C:\MinGW\x86_64-w64-mingw32\lib -l ws2_32
Mne to robilo to iste v cmd, tak som to zacal robit v code blocks. Aj tam mi to vyhadzovalo to iste.
Skus pridat na zaciatok programu
#define _CRT_SECURE_NO_WARNINGS
#define DEFAULT_BUFLEN 8192
#define _WIN32_WINNT 0x501
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <Wincon.h>
a do linker settings v compiler settings pridaj ws2_32
Mne to takto funguje v code blocks , tak mozno to pomoze aj tebe.
Neviem ci sa vam to podarilo vyriasit ale ja mam ten isty problem a tiez neviem ako to opravit.
Toto doplniť do CMakeLists.txt
link_libraries(ws2_32 wsock32)
target_link_libraries(nazov_tvojho_projektu wsock32 ws2_32)
Cela pointa je v tom, ze linker nevidi cestu ku spominanej kniznici.
Potrebujete alternativu tohto riesenia pre CLion.
To, co vam pisu kolegovia nepomohlo? Pytali ste sa svojho cviciaceho v ramci cvicenia?
Toto su riesenia pre Clion, ja mam ten problem vo visual studio, kniznicu by som mal mat linknutu, dnes buddem mat cviko takze este sa mozem aj tam spytat.
- 21 Forums
- 220 Topics
- 808 Posts
- 0 Online
- 7,045 Members