在Linux上为可执行文件创建导入库

时间:2013-12-09 16:34:02

标签: c++ linux linker shared-libraries googletest

我正在寻找一种方法来对我链接到可执行文件的C ++应用程序进行单元测试。我正在使用googletest,我需要将测试可执行文件链接到测试中的二进制文件,以便测试该二进制文件。在我的情况下,被测二进制文件是可执行文件。在Windows上,我可以为测试的可执行文件创建一个导入库,并将测试可执行文件与其链接。只要我不从测试二进制文件中导出main函数,它就可以正常工作。 但是在Linux上我无法做到这一点。当直接链接到测试的可执行文件时,链接失败,因为有两个主要功能,一个在测试的可执行文件中,一个在测试可执行文件中。而且我不知道在Linux上创建导入库并与之链接的任何方法。

据我所知,我可以将测试过的可执行文件划分为一个包含其中所有功能的共享库,以及一个只包含main函数的小型可执行文件。测试程序将与共享库链接。但这是我真的不想做的事情,因为我有超过20个这样的可执行文件,我需要测试并将它们分成共享库,并且可执行文件由于多种原因需要很长时间。

另一种可能性是将测试的源代码添加到测试项目中,但是经过测试的源代码将被编译两次,由于构建时间较长,我无法负担。

所以我试图弄清楚是否可以在Linux上做类似于我在Windows上做的事情。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

  

我正在试图弄清楚是否可以在Linux上做类似于我在Windows上做的事情。

没有