2016-06-01 62 views
-2

1)我想在我的库代码中使用变量n_threads(在Windows和Linux上以共享库形式分发)在多个.cpp文件中。如何创建库代码可以使用的变量以及用户可以设置的变量?

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

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

  • 我试图用static变量的全局文件 - 它导致每个.cpp文件有其副本;
  • 我曾尝试只是为了保持它在导致变量被其他翻译单元已经被定义,因此库不编译
  • 我试图external(与.so在Linux上工作,并不会在Windows上编译MSVC14)命名空间这导致图书馆由于未解决的外部问题而无法编译。

可以做什么使多个库中使用全局变量.cpp文件可以从外部(从库用户代码)安装?

+0

你的第二次尝试失败了吗?你在说'namespace foo {extern int var; }'我想? –

+0

错误\t LNK2001 \t未解析的外部符号“int foo :: n_threads”fot第三次尝试 – DuckQueen

+0

错误\t LNK2005 \t“int foo :: n_threads”已在bla.obj中为第二次定义 – DuckQueen

回答

-1

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

相关问题