【发布时间】:2016-09-29 12:48:18
【问题描述】:
我正在处理(其他人的)代码,其中动态库是从多个文件创建的。 文件“MyStaticVector.h”包含具有固定(模板化)长度的静态向量的定义/实现。
这被编译成一个库(Windows 下为 .dll,Linux 下为 .so)。编译/链接运行成功。
MyStaticVector.h:
----------------
template< unsigned VectorLength >
struct MyStaticVector
{
static const unsigned uNumberOfElements = VectorLength;
MyStaticVector()
{
}
}
我的问题是,这在 MSVC11/debug+release 和 GCC/release 下有效。但是使用 GCC/debug,我得到一个错误在运行时,找不到“uNumberOfElements”的符号。你能解释一下,为什么?
【问题讨论】:
-
哪个版本的 gcc?什么编译器标志?
标签: c++ gcc dll linker undefined-symbol