【发布时间】:2013-06-17 23:05:15
【问题描述】:
我在 Visual Studios 2008 中进行 c++ 移植/开发。 我遇到以下问题。
1) 不允许可变大小的数组。 2)类的任何未定义函数的链接错误,即使它们没有被引用。(错误LNK2001:未解析的外部符号“public:virtual void __thiscall ...)
我觉得这些和c++语言VS2008支持的版本有关。
我正在尝试编译和链接大型 c++ 代码库。我不能用 new/alloc 替换可变大小的数组。请给我解决方案,以便我可以使用现有代码。
谁能帮我解决这个问题?
但是下面的代码在同一个 VS2008 中可以正常工作
class Hello
{
public:
int a;
public:
virtual void add();
};
class bye : public Hello
{
public:
int y;
public:
void add();
};
int main()
{
std::cout << "got";
}
我哪里错了?
【问题讨论】:
-
据我所知,any 标准版本的 C++ 中不允许使用 VLA。
-
我正在尝试将 c++ 代码从 linux 移植到 windows。 g++ 支持 VLA
-
是的,作为扩展。正如您所发现的,Visual Studio 没有。这就是它的结束。如果你真的“不能用 new/alloc 替换可变大小的数组”,那你就不走运了。
-
@CarlNorum 我遇到的两个问题都是这种情况吗?
-
你的其他问题更简单——只需实现函数即可。
标签: c++ visual-studio-2010 visual-c++ visual-studio-2008