C++ Visual Studio C++;-未解析符号\uuuu环境

C++ Visual Studio C++;-未解析符号\uuuu环境,c++,visual-studio,compiler-construction,C++,Visual Studio,Compiler Construction,我正在使用VS2008并使用多线程调试(/MTd)编译我的应用程序。 在链接时,我收到以下错误: error LNK2001: unresolved external symbol __environ 符号的定义在哪里 谢谢 Dima使用/Md(或变体)时,符号\u environ和\u wenviron将被函数调用替换。您需要跟踪使用这些(过时和不推荐使用的)符号的代码,并使其成为可用的符号。我发现很多人也有和你一样的问题 我发现了更多细节: Unicode上下文中的轮询环境 当/MD或/M

我正在使用VS2008并使用多线程调试(/MTd)编译我的应用程序。 在链接时,我收到以下错误:

error LNK2001: unresolved external symbol __environ
符号的定义在哪里

谢谢 Dima

使用/Md(或变体)时,符号
\u environ
\u wenviron
将被函数调用替换。您需要跟踪使用这些(过时和不推荐使用的)符号的代码,并使其成为可用的符号。我发现很多人也有和你一样的问题

我发现了更多细节:

Unicode上下文中的轮询环境 当/MD或/MDd 使用悬挂机构。对于CRT DLL 类型(宽或多字节) 程序未知。只有多字节 创建类型是因为它是 最有可能的情况

如果您将符号
\u environ
的使用更改为宽字符版本
\u wenviron
,您的原始代码可能会工作。

当您使用/Md(或变体)时,符号
\u environ
\u wenviron
将由函数调用替换。您需要跟踪使用这些(过时和不推荐使用的)符号的代码,并使其成为可用的符号。我发现很多人也有和你一样的问题

我发现了更多细节:

Unicode上下文中的轮询环境 当/MD或/MDd 使用悬挂机构。对于CRT DLL 类型(宽或多字节) 程序未知。只有多字节 创建类型是因为它是 最有可能的情况

如果将符号
\u environ
的使用更改为宽字符版本
\u wenviron
,则原始代码可能会正常工作。

如所述,\u environ在Stdlib.h中声明,并在crt库中实现

因此,您可能在链接此库时遇到问题,或者它选择了错误的库(请尝试检查生成路径)。

如所述,\u environ在Stdlib.h中声明,并在crt库中实现


因此,您可能在链接此库时遇到问题,或者它选择了错误的库(请尝试检查生成路径)。

好的,因此我需要使用getenv_s、\u wgetenv_s和\u putenv_s、\u wputenv_s。但是如果我想迭代所有的环境变量呢?我添加了更多的细节,如果您使用/MdOk,那么您应该使用_wenviron符号,所以我需要使用getenv_s、_wgetenv_s和_putenv_s、_wputenv_s。但是如果我想迭代所有的环境变量呢?我添加了更多的细节,如果您使用/Md,看起来应该使用_wenviron符号