使用Main()的C ++库分发

时间:2015-06-18 17:07:26

标签: c++ visual-studio visual-c++ dll static-libraries

问题

C ++库是否可以使用自动生成的main()函数,因为main()不在随其分发的Header文件中?

如果不行,那么在main()周围包装#ifdef _DEBUG会更好吗?

方案

我有一个C ++ Visual Studio项目,它包含我们所有的消息队列功能,以抽象我们当前使用的任何AMQP,并在Release配置中编译为库。

在Debug Configuration中,它被编译为可执行文件,以便可以在其上运行一些测试以确认它是否正常工作。

我整个上午一直在四处寻找,并且找不到任何关于这方面最佳做法的参考。

我们的想法是,库中唯一使用的部分是来自库中MessageQueue类的put()和get()。

1 个答案:

答案 0 :(得分:2)

我只是重构测试部分并且你的问题消失了:总是将你的代码构建为一个没有main函数的库,并且有一个完全独立的项目,它链接到库并进行测试。这样它的构建方式完全类似于实际的发布使用,而不是作为一个独立的二进制可执行文件,与正常版本的使用情况不同。