如果我输入一个shell,我有vlc(重现视频的程序):
/ home/vlc"/ home/my movies /我想看的电影.mkv"
它打开了一个再现电影.
但是,当我运行以下程序时:
#include <unistd.h>
int main(void) {
execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
vlc打开但不会重现任何内容.我怎么解决这个问题?
我试过的事情:
我猜的
execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL);
Run Code Online (Sandbox Code Playgroud)
相当于在shell中输入:
/home/vlc /home/my movies/the movie i want to see.mkv
Run Code Online (Sandbox Code Playgroud)
这不起作用,所以我试过
execl("/home/vlc", "\"/home/my movies/the movie i want to see.mkv\"",NULL);
Run Code Online (Sandbox Code Playgroud)
和vlc打开但不会重现.
我没有在最后写NULL,而是尝试了0,(char*)0,1 ....没有用.救命!!!!
线
glActiveTexture(GL_TEXTURE0+32);
Run Code Online (Sandbox Code Playgroud)
抛出 GL_INVALID_ENUM(因为我发现运行 glGetError()),而
glActiveTexture(GL_TEXTURE0+31);
Run Code Online (Sandbox Code Playgroud)
运行良好。
根据文档:
“如果纹理不是 GL_TEXTUREi 之一,则生成 GL_INVALID_ENUM,其中 i 的范围从零到 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 的值减去一。”
但在我的情况下 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 被定义为 35661,并且根据相同的文档
“纹理单元的数量取决于实现,但必须至少为 80。”
我怎么能解决这个问题?
以防万一,GL_TEXTURE0 被定义为 33984 而我的 OpenGL 版本是 2.1