我正在尋找一種方法來單元測試我的C++應用程序鏈接到可執行文件。我正在使用googletest,我需要將測試可執行文件鏈接到測試中的二進制文件以測試該二進制文件。在我的情況下,二進制測試是一個可執行文件。在Windows上,我可以爲測試的可執行文件創建一個導入庫,並將測試可執行文件與它鏈接起來。只要我不從被測試的二進制文件中導出主函數,它就可以正常工作。 但是在Linux上我無法做到這一點。當直接與被測試的可執行文件鏈接時,由於有兩個主要功能,一個在被測試的可執行文件和一個在測試可執行文件中,所以鏈接失敗我不知道有什麼方法可以在Linux上創建導入庫並與之鏈接。在Linux上爲可執行文件創建導入庫
我知道我可以將我測試過的可執行文件分成一個共享庫,其中包含所有的功能以及一個只包含主功能的小型可執行文件。測試程序將與共享庫鏈接。但這是我真正不想做的事情,因爲我有超過20個這樣的可執行文件需要測試,並將它們分成共享庫和可執行文件需要很長的時間。
另一種可能性是將測試的源代碼添加到測試項目中,但接下來測試的源代碼將被編譯兩次,這是由於構建時間過長而無法承受的。
所以我想弄清楚是否可以在Linux上做類似於我在Windows上完成的事情。
預先感謝您。
號不要編譯成主共享庫。你還期望什麼其他答案? –