强制链接静态库中的cpp文件(visual studio)

时间:2012-05-25 15:32:49

标签: c++ visual-studio-2008 static linker xll

我有一堆包含静态变量的cpp文件(应该没有头文件)。我的Visual Studio 2008编译器似乎忽略了这些静态变量 - 我该如何修复它?

更多详情:

  • 我有一个抽象类,它有一个静态字段allInstances;当我的类的“concretee”实例被构造时(它发生在实例化cpp文件中的静态变量时),指向它的指针被推送到allInstances中。
  • Cpp文件包含从我的抽象类派生的类;他们的实现需要保留在cpp文件中,因为它们只是通过allInstances调用
  • 我的抽象类cpp文件位于一个编译在静态库中的文件夹(项目)
  • 此静态库由编译xll
  • 的项目使用

当cpp文件位于xll项目中时,一切都很好。但是当我将cpp文件移动到一个单独的文件夹中时(需要完成,因为excel现在不是唯一的接口),我的静态变量不再被实例化了。

我有很多这些cpp文件,包括xll,exe,pyd,dll等各个项目。项目不会很好....

有什么想法吗? 非常感谢提前。

1 个答案:

答案 0 :(得分:3)

您必须告诉链接器相应的目标文件是程序的一部分。通常,这是通过将它们指定为目标文件来完成的,而不是将它们放在库中;根据定义,如果库中的目标文件解析了外部引用,则它们只会成为程序的一部分。