gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:01:48 24 4
gpt4 key购买 nike

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

更多详情:

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

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

我有很多这样的 cpp 文件,并将它们全部包含到每个 xll、exe、pyd、dll 等项目中。项目不会很好....

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

最佳答案

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

关于c++ - 强制链接静态库中的 cpp 文件(visual studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com