我在Fedora 13上学习OpenGL,并注意到对glGetString的调用导致了seg错误.我已经刮了谷歌,但没有解决方案.
代码很简单:
#include <GL/gl.h>
int main() {
glGetString(GL_VERSION);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译命令:
g++ -lGL main.cpp -o test.bin
Run Code Online (Sandbox Code Playgroud)
运行结果:
$ ./test.bin
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
OpenGL信息:
$ glxinfo | grep OpenGL
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) IGDNG_M GEM 20100328 2010Q1
OpenGL version string: 2.1 Mesa 7.8.1
OpenGL shading language version string: 1.20
OpenGL extensions:
Run Code Online (Sandbox Code Playgroud)
非常感谢任何想法或参考.
解:
#include <iostream>
#include <GL/freeglut.h>
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow("test");
glutFullScreen();
std::cout << …Run Code Online (Sandbox Code Playgroud) 我已经使用python/cython开发了一个实用程序来对CSV文件进行排序并为客户端生成统计信息,但调用pool.map似乎会在我的映射函数有机会执行之前引发异常.排序少量文件似乎按预期运行,但随着文件数量增加到10,我在调用pool.map后得到以下IndexError.有没有人碰巧认出以下错误?任何帮助是极大的赞赏.
虽然代码在NDA下,但用例非常简单:
代码示例:
def sort_files(csv_files):
pool_size = multiprocessing.cpu_count()
pool = multiprocessing.Pool(processes=pool_size)
sorted_dicts = pool.map(sort_file, csv_files, 1)
return sorted_dicts
def sort_file(csv_file):
print 'sorting %s...' % csv_file
# sort code
Run Code Online (Sandbox Code Playgroud)
输出:
File "generic.pyx", line 17, in generic.sort_files (/users/cyounker/.pyxbld/temp.linux-x86_64-2.7/pyrex/generic.c:1723)
sorted_dicts = pool.map(sort_file, csv_files, 1)
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 227, in map
return self.map_async(func, iterable, chunksize).get()
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 528, in get
raise self._value
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud) 使用std :: setbase格式化数字以将int的数字最小值传递给std :: stoi会引发std :: out_of_range异常,但我不明白为什么.如果有人能帮助我更好地理解异常背后的推理,我将非常感激.
代码片段:
#include <iomanip>
#include <iostream>
#include <limits>
#include <sstream>
template <typename T>
std::string toString(const T x, const int base)
{
std::stringstream ss;
ss << std::setbase(base) << x;
return ss.str();
}
int main(void)
{
const int x = std::numeric_limits<int>::min();
std::size_t index = 0;
const auto base = 16;
const auto s = toString(x, base);
std::cout << "base-10: " << x << std::endl
<< "base-" << base << ": " << s << std::endl;
std::cout …Run Code Online (Sandbox Code Playgroud)