我正在链接一个静态库,该库有一个std::cout
包装器,如果我从应用程序代码中使用它,它就可以工作,但没有库的内部输出(以完全相同的方式使用)显示任何输出。
也许这并不重要,但我正在使用 Qt Creator 和 qmake 项目文件来构建。我已经添加console
到应用程序中CONFIG
(甚至尝试了静态库,但没有效果)。
可能出了什么问题,我该如何解决?谢谢!
更新:好吧,包装器是这个的改编版本:
我正在链接一个静态库,该库有一个std::cout
包装器,如果我从应用程序代码中使用它,它就可以工作,但没有库的内部输出(以完全相同的方式使用)显示任何输出。
也许这并不重要,但我正在使用 Qt Creator 和 qmake 项目文件来构建。我已经添加console
到应用程序中CONFIG
(甚至尝试了静态库,但没有效果)。
可能出了什么问题,我该如何解决?谢谢!
更新:好吧,包装器是这个的改编版本:
包装器将std::cout
无法隐式地“访问”另一个库。您是否考虑过cout
完全重定向?类似src的东西:
int main() {
std::streambuf* cout_sbuf = std::cout.rdbuf(); // save original sbuf
std::ofstream fout("cout.txt");
std::cout.rdbuf(fout.rdbuf()); // redirect 'cout' to a 'fout'
// ...
std::cout.rdbuf(cout_sbuf); // restore the original stream buffer
}
这样,您就可以控制馈送到 的数据std::cout
,而不管库是否进行输出(当然,除非它们重定向std::cout
自己。)