使用 MinGW 编译带有网络代码的简单 C++ SFML 文件会抛出错误 "undefined reference to IpAddress"
Compiling simple C++ SFML file with network code using MinGW throws error "undefined reference to IpAddress"
在使用 MinGW Windows 上使用 SFML 2 编译 C++ 项目时,我总是遇到错误。
在 C:\MinGW\include\
处有 SFML 头文件文件夹,其中包括 Network.hpp
,我还将 libsfml-[...].a
文件复制到 C:\MinGW\lib\
以及 sfml-[...]-2.dll
文件到 C:\MinGW\bin\
.
这是我的示例文件:
#include <iostream>
#include <SFML/System.hpp>
#include <SFML/Network.hpp>
int main(int argc, char** argv)
{
sf::TcpListener listener;
listener.listen(4444);
sf::TcpSocket client;
std::cout << "Waiting for client to connect..." << std::endl;
if (listener.accept(client) == sf::Socket::Done)
{
std::cout << "Client connected: " << client.getRemoteAddress() << std::endl;
listener.close();
}
else
{
std::cout << "Client didnt connect" << std::endl;
}
return 0;
}
如果我尝试使用以下命令编译它
g++ test.cpp -lsfml-system -lsfml-network
我收到这些错误:
C:\Users\me\AppData\Local\Temp\cc6XzH1R.o:test.cpp:(.text+0x28): undefined reference to `_imp___ZN2sf9IpAddress3AnyE`
C:\Users\me\AppData\Local\Temp\cc6XzH1R.o:test.cpp:(.text+0x3a): undefined reference to `_imp___ZN2sf11TcpListener6listenEtRKNS_9IpAddressE`
感谢您的帮助:D
马策
简单,尝试 link 正确的库版本。
如果你制作 x86 应用程序使用 32 位版本的库,如果你制作 x64 应用程序使用 64 位版本。我也遇到了同样的错误,这已修复。
在使用 MinGW Windows 上使用 SFML 2 编译 C++ 项目时,我总是遇到错误。
在 C:\MinGW\include\
处有 SFML 头文件文件夹,其中包括 Network.hpp
,我还将 libsfml-[...].a
文件复制到 C:\MinGW\lib\
以及 sfml-[...]-2.dll
文件到 C:\MinGW\bin\
.
这是我的示例文件:
#include <iostream>
#include <SFML/System.hpp>
#include <SFML/Network.hpp>
int main(int argc, char** argv)
{
sf::TcpListener listener;
listener.listen(4444);
sf::TcpSocket client;
std::cout << "Waiting for client to connect..." << std::endl;
if (listener.accept(client) == sf::Socket::Done)
{
std::cout << "Client connected: " << client.getRemoteAddress() << std::endl;
listener.close();
}
else
{
std::cout << "Client didnt connect" << std::endl;
}
return 0;
}
如果我尝试使用以下命令编译它
g++ test.cpp -lsfml-system -lsfml-network
我收到这些错误:
C:\Users\me\AppData\Local\Temp\cc6XzH1R.o:test.cpp:(.text+0x28): undefined reference to `_imp___ZN2sf9IpAddress3AnyE`
C:\Users\me\AppData\Local\Temp\cc6XzH1R.o:test.cpp:(.text+0x3a): undefined reference to `_imp___ZN2sf11TcpListener6listenEtRKNS_9IpAddressE`
感谢您的帮助:D
马策
简单,尝试 link 正确的库版本。 如果你制作 x86 应用程序使用 32 位版本的库,如果你制作 x64 应用程序使用 64 位版本。我也遇到了同样的错误,这已修复。