c++ - 如何在用户自定义命名空间的成员函数中引用指针**environ?

标签 c++ compiler-construction namespaces g++

#include <iostream>

namespace A {
    void func();
}

void  A::func()
{
    extern char **environ;
    std::cout << environ[0] << std::endl;
}

int main()
{
     A::func();
     return 0;
}

像上面的代码,我只是想在A::func()中使用系统定义的指针**environ,但是g++总是说:

undefined reference to `A::environ'

如何正确使用系统定义的变量environ

最佳答案

添加

 #include <unistd.h>

并且 environ 必须在全局范围内。

所以代码看起来像这样:

#include <iostream>
#include <unistd.h>
extern char **environ;
namespace A {
void func();
}

void  A::func()
{

    std::cout << environ[0] << std::endl;
}

int main()
{
     A::func();
     return 0;
}

关于c++ - 如何在用户自定义命名空间的成员函数中引用指针**environ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15586869/

相关文章:

c++ - 优化 vector 赋值 c++

c++ - 共享对象文件中的版本号

c++ - 解决方案对命名空间/ADL 事物的标准一致性

xml - 命名空间声明问题

c++ - 在 Linux 上使用 C++ 记录进程终止的原因

c++ - 可移植地编译整个目录

c++ - 如何在 CMake 中使用 OpenGL/Angle 编译 QtGui 示例?

c++ - Visual Studio 2010 C++ 编译器 - 编译时获取当前行号

C++编译器——常用符号

xsd - 单个 WSDL 中的多个 XML 模式是否需要使用 xsd :import or not?