C++ 使用共享库和sf::Window的程序未进入主函数

C++ 使用共享库和sf::Window的程序未进入主函数,c++,shared-libraries,sfml,C++,Shared Libraries,Sfml,我向SFML库添加了一些层。 我想让它成为其他程序应该使用的共享库。问题是,当我尝试使用这个库中的函数时,主函数没有被调用,但程序仍然在运行 int main() { std::cout << "entry" << std::endl; // Calling a function inside my library FunctionInsideLibrary(); return (0); } 据我所知: 如果我链接我的库,但不从我的 库程序将显示条目 因

我向SFML库添加了一些层。 我想让它成为其他程序应该使用的共享库。问题是,当我尝试使用这个库中的函数时,主函数没有被调用,但程序仍然在运行

int main()
{
  std::cout << "entry" << std::endl;
  // Calling a function inside my library
  FunctionInsideLibrary();
  return (0);
}
据我所知:

如果我链接我的库,但不从我的 库程序将显示条目 因此,如果我使用一个函数,条目不会显示,但程序正在运行,需要Ctrl-C来关闭它 如果我创建一个静态库,它不会发生 我试着和他联系 其他图书馆和它的作品很好的问题必须与之相关 SFML 我只是尝试链接一个使用sf::Window的虚拟库。显然是这个类对我的问题负责,其他SFML类工作。 编辑:
显然,这是因为我在匿名名称空间中使用了全局变量SFML窗口。使用指针或在类内部执行此操作。我想知道为什么这是不可能的。

尝试用gdb单步通过它?我确实尝试在我的main中设置断点,但它没有进入。入口点的断点表示它在共享库中,但仍然不执行任何操作。这是因为我将窗口用作全局变量。但是,为什么……没有足够的信息来真正提供帮助。你们图书馆的代码是什么?您是如何链接SFML的?你如何与图书馆进行链接?是的,你不应该使用全局变量,尤其是在SFML中,因为不幸的是SFML使用了全局变量。你没有读过我的帖子吗?这是一个匿名名称空间,完全不同。为了重现这个bug,您只需将一个全局变量sf::Window放入一个共享库并链接它。就这样。我们鼓励你回答自己的问题,而不是编辑你的问题。如果你对你找到的答案还有其他问题,你应该发布一个新问题。