无法从静态库通过 std::cout 输出
我正在链接一个静态库,该库具有一个 std::cout
包装器,如果我从应用程序代码中使用它,该包装器就可以工作,但库的内部输出(以完全相同的方式使用)不会显示任何内容输出。
也许这并不重要,但我正在使用 Qt Creator 和 qmake 项目文件来构建。我已将控制台添加到应用程序的 CONFIG 中(甚至尝试了静态库,但没有效果)。
可能出了什么问题,我该如何解决这个问题?谢谢!
更新:嗯,包装器是 这个:
I'm linking a static library that has a std::cout
wrapper that works if I use it from the application code, but non of the library's internal outputs (used in exactly the same fashion) show any output.
Maybe it's not important, but I'm using Qt Creator and qmake project files to build. I have added console
to the application's CONFIG
(and even tried that for the static library, but it had no effect).
What could be going wrong and how can I fix this? Thanks!
UPDATE: well, the wrapper is an adapted version of this one:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
std::cout
包装器将无法隐式“访问”另一个库。您是否考虑过完全重定向cout
?类似src:这样,您就可以控制输入到
std::cout
的数据,而不管执行输出的库是什么(当然,除非它们重定向std::cout
> 他们自己。)The
std::cout
wrapper won't be able to 'reach in' to another library implicitly. Have you thought about redirectingcout
altogether? Something likesrc:That way you'd have control over data fed to
std::cout
, regardless of the library doing the output (unless, of course, they redirectstd::cout
themselves.)