小编use*_*557的帖子

为什么此静态const int成员变量似乎可以在数组定义中公开访问?

我作以下声明:

class Servo {

protected:

    static const int maxServos = 16;    
    static Servo servos[maxServos]; //Array declaration
};

Servo Servo::servos[Servo::maxServos]; //Array definition
Run Code Online (Sandbox Code Playgroud)

...它可以编译,很棒!但是我不明白为什么要编译它,因为在我看来maxServos受保护了,并且在定义数组时在全局范围内使用它。我尝试在另一个全局上下文中使用它,的确确实得到了编译错误:

int main() {
    std::cout << Servo::maxServos;  //This will not compile.
}
Run Code Online (Sandbox Code Playgroud)

那么发生了什么 ?数组的整个定义是否受命名空间限定的范围的影响?是编译器故障吗?

我正在使用Lubuntu 16.04 O / S在Raspberry PI上使用g ++ -std :: c ++ 11。

c++ access-control static-variables language-lawyer c++11

13
推荐指数
1
解决办法
325
查看次数

为什么 gst-inspect 找不到从样板代码编译和安装的 gstreamer 插件

我按照 GStreamer Plugin Writer's Guide (1.7.1.1) 中的说明操作:

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html

为了构建一个新的 gstreamer 插件。基本上我运行 make_element 然后按照描述编辑 Makefile.am 。令人惊讶的是 make 和 make install 工作,我最终得到:

/usr/local/lib/gstreamer-1.0/libgstframe_grabber.la

/usr/local/lib/gstreamer-1.0/libgstframe_grabber.so

据我了解,gst-inspect 应该会自动找到这个插件。该指南说 /usr/local/lib/gstreamer-1.0 需要添加到 GST_PLUGIN_PATH 以便找到此目录中的插件。另一个文件指出该目录是自动搜索的。我尝试使用和不使用环境变量,但没有运气。

现在我应该说我刚刚开始使用 gstreamer 并且我正在遭受信息过载的困扰。我已经阅读了很多文档,但我什至不知道我是在构建 gstreamer1.0 还是 gstreamer0.10 插件(我认为该指南适用于 gstreamer1.0,因为该指南的版本是 1.7.1.1 但不能'不能肯定)。

有人可以在这里给我一个线索吗?

plugins gstreamer

3
推荐指数
1
解决办法
5742
查看次数