c++11线程、SFML和代码::块
c++11 threads, SFML and code::blocks
我正试图使用c++11std::thread
和SFML库来运行这段代码,但我无法构建它。我很确定这与我如何设置编译器有关,但我不知道。。。我怎样才能让它发挥作用?几个小时以来,我一直在努力让它发挥作用,学习教程等,所以我已经向Stack Overflow寻求答案。我在windows7 64位机器上使用代码::blocks IDE和x32-4.8.1-posix-stalome-rev5编译器。
#include <iostream>
#include <thread>
#include <string>
#include <SFML/System.hpp>
#include <SFML/Network.hpp>
using namespace std;
void doNetwork() {
cout << "Starting..." << endl;
sf::TcpListener listener;
listener.listen(88);
// Wait for a connection
sf::TcpSocket socket;
listener.accept(socket);
cout << "New client connected: " << socket.getRemoteAddress() << endl;
// Receive a message from the client
char buffer[1024];
size_t received = 0;
socket.receive(buffer, sizeof(buffer), received);
cout << "The client said: " << buffer << endl;
// Send an answer
string message = "Welcome, client";
socket.send(message.c_str(), message.size() + 1);
}
int main()
{
thread task(doNetwork);
task.join();
return 0;
}
这就是构建调试日志所说的:
-------------- Build: Debug in bang ---------------
Compiling: main.cpp
Linking console executable: binDebugbang.exe
objDebugmain.o: In function `Z9doNetworkv':
C:/Users/user/CppProjects/bang/main.cpp:12: undefined reference to `sf::TcpListener::TcpListener()'
C:/Users/user/CppProjects/bang/main.cpp:13: undefined reference to `sf::TcpListener::listen(unsigned short)'
C:/Users/user/CppProjects/bang/main.cpp:16: undefined reference to `sf::TcpSocket::TcpSocket()'
C:/Users/user/CppProjects/bang/main.cpp:17: undefined reference to `sf::TcpListener::accept(sf::TcpSocket&)'
C:/Users/user/CppProjects/bang/main.cpp:18: undefined reference to `sf::TcpSocket::getRemoteAddress() const'
C:/Users/user/CppProjects/bang/main.cpp:18: undefined reference to `sf::operator<<(std::ostream&, sf::IpAddress const&)'
C:/Users/user/CppProjects/bang/main.cpp:23: undefined reference to `sf::TcpSocket::receive(void*, unsigned int, unsigned int&)'
C:/Users/user/CppProjects/bang/main.cpp:28: undefined reference to `sf::TcpSocket::send(void const*, unsigned int)'
objDebugmain.o: In function `ZN2sf11TcpListenerD1Ev':
C:/Users/user/CppProjects/SFML-2.1/include/SFML/Network/TcpListener.hpp:43: undefined reference to `sf::Socket::~Socket()'
objDebugmain.o: In function `ZN2sf9TcpSocketD1Ev':
C:/Users/user/CppProjects/SFML-2.1/include/SFML/Network/TcpSocket.hpp:46: undefined reference to `sf::Socket::~Socket()'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
10 errors, 0 warnings
我在编译器中使用的设置:
编译器标志:
-std=C++0x
其他选项:
-std=gnu++0x -U__STRICT_ANSI__
定义:
SFML_STATIC
链接器设置:
sfml-system-s-d
sfml-network-s-d
搜索目录-编译器:
C:UsersuserCppProjectsSFML-2.1include
C:UsersuserCppProjectsbanginclude
搜索目录-链接器:
C:UsersuserCppProjectsSFML-2.1lib
工具链可执行文件:
-编译器安装目录:
C:Program Files (x86)mingw-buildsx32-4.8.1-posix-dwarf-rev5mingw32
-C编译器:
i686-w64-mingw32-gcc-4.8.1.exe
-C++编译器:
i686-w64-mingw32-c++.exe
-动态库链接器:
i686-w64-mingw32-c++.exe
-静态库的链接器:
ar.exe
-调试器:
gdb.exe
-资源编译器:
windres.exe
-制作程序:
mingw32-make.exe
我遇到了一个模拟程序问题,我是如何在Linux系统上解决这个问题的:项目/构建选项
转到链接器设置选项卡。我添加了:sfml网络
完成。希望它能帮助
相关文章:
- 如何修复sfml c++代码编译错误
- 将 SFML 用于代码块C++出现错误库 SFML
- 针对代码::块设置的 SFML 故障排除
- SFML - 代码::块看不到 sfml 图形(等)文件
- 代码::具有 SFML 2,4 的块中未定义的引用
- SFML.代码未执行,但它100%应该
- 为什么该代码不绘制精灵C++ SFML
- SFML C 为什么在屏幕上没有绘制?(简单代码)
- SFML 解析事件代码
- Visual Studio代码 - 找不到SFML库
- 简单的教程SFML代码在Ubuntu 16.04上崩溃
- SFML故障代码块
- 使用 MinGW 编译具有网络代码的简单 C++ SFML 文件会引发错误"undefined reference to IpAddress"
- 尝试运行SFML你好世界代码,我得到和错误
- SFML和代码::块0xc00000be
- 如何使用此代码设置重力?SFML/C++
- c++11线程、SFML和代码::块
- C++SFML qt创建者未解析的外部代码
- SFML在使用代码::块的第一次调用时崩溃
- 在代码::块中设置SFML时出现问题