如何创建库代码可以使用且用户可以设置的变量

How to create a variable that library code can use and a user can set?

本文关键字:用户 设置 变量 可以使 何创建 创建 代码      更新时间:2023-10-16

1) 我想在我的库代码(在 Windows 和 Linux 上以共享库形式分发)在多个.cpp文件中使用变量n_threads

2)我想让库用户来设置它。

如何在C++做这样的事情?

  • 我尝试了带有static变量的全局文件 - 它导致每个.cpp文件都有其副本;
  • 我试图将其保留在一个命名空间中,这导致变量已经在其他翻译单元中定义,因此库无法编译
  • 我已经尝试了external(它适用于带有.so的Linux并在Windows MSVC14上编译),这导致库由于未解析的外部而无法编译。

如何使多个库.cpp文件中使用的全局变量可以从外部(从库用户代码)设置?

即使在 Windows 中,共享库也可以导出变量。但是,最好将变量保留为内部单例,并提供导出函数来设置它。