我最近安装了(最新版本的)'Eclipse IDE for C/C++ Developers'和minGW(4.8.1),以帮助我在很长一段时间后重新使用C++.
我已经加入-std=c++11到Other flags在C/C++ Build/Settings/Tool Settings/GCC C++ Compiler/Miscellaneous
我有一个小程序,利用了许多C++ 11特性(例如使用chrono库.emplace_back).
运行后,我在Problems窗口中遇到多个未解决的问题,如下面的粘贴).
有趣的是,该程序确实编译并运行正常.
有了这个,我有没有在Eclipse中设置解决这些问题的东西?
有没有人知道to_string()minGW(4.8.1)中的函数是否仍有问题,例如以下内容无法编译:
window.setTitle("Bullets on screen: " + to_string(bullets.size()) + " currentSlice: " + to_string(currentSlice) + " FT: " + to_string(ft) + " FPS: " + to_string(fps) );
Run Code Online (Sandbox Code Playgroud)
它使用Visual Studio Express 2013进行编译(尽管它存在chrono库的准确性问题,因此切换到minGW).
谢谢.
Eclipse'问题'窗口输出:
Description Resource Path Location Type
Symbol 'duration' could not be resolved chronotest.cpp /chronotest/src line 19 Semantic Error
Function 'now' …Run Code Online (Sandbox Code Playgroud) 我一直在研究各种游戏计时循环方法,例如Glenn Fiedler和DeWitter.由于我自己的C++知识限制,我发现关键领域难以理解.有了这个我开始尝试实现我自己的方法....我想一个好方法来尝试理解这些方法的一些东西.
[edit1:我正在使用CodeBlocks IDE和minGW-w64(x64-4.8.1-posix-seh-rev5)作为编译器]
[edit2:修改代码和输出窗口以包含第3个计时器,QueryPerformanceCounter]
在尝试完成此操作时,我遇到了以下问题:
最小代码:
#include <chrono>
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
using namespace chrono;
LARGE_INTEGER startqpc, stopqpc, li;
double PCFreq = 0.0;
void print()
{
for (int p=0; p<1000000; ) p += 1; //adjust till ms (steady) returns 1-2ms
}
int main()
{
for(int x=0; x<200; x += 1)
{
steady_clock::time_point start = steady_clock::now();
auto timePoint1 = chrono::high_resolution_clock::now();
if(!QueryPerformanceFrequency(&li))
cout << "QueryPerformanceFrequency failed!\n";
PCFreq = double(li.QuadPart)/1000.0;
QueryPerformanceCounter(&startqpc);
print();
steady_clock::time_point finish = steady_clock::now();
auto …Run Code Online (Sandbox Code Playgroud)