静态库与g ++链接

时间:2016-06-05 11:58:09

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

我有多个使用Visual Studio和Visual C++编译器创建的静态库。

我也在使用CxxTest进行单元测试。我在.h文件中创建了测试并生成了测试运行器文件runner.cpp

接下来我需要做的是编译runner.cpp文件。

runner.cpp使用其中一个库CommonLib.libCommonLib.lib没有任何附加库依赖项。

CommonLib.lib标题位于我的CommonLib项目目录中。

我尝试使用下一个命令编译runner.cpp

g++ -o runner.exe runner.cpp -L../x64/Release -l:CommonLib.lib -I../CommonLib 
-I../cxxtest-4.4

Release目录中有一个CommonLib.lib,标题位于CommonLib目录中。 cxxtest-4.4目录包含CxxTest标头。

我收到错误:

undefined reference to `multiplyMatricesStandard(int**, int**, int, int, int**, int, int, int)

multiplyMatricesStandard是一个在CommonLib目录中的头文件中声明的函数。在同一目录中也是一个cpp文件,其中包含该函数的定义(我不认为cpp文件的位置真的很重要,因为我创建了一个静态库)。

我无法弄清楚为什么g ++看不到函数的定义。

如果没有使用g ++创建静态库,是否会出现问题?如果有,我如何编译runner.cpp文件而不必使用g ++创建静态库?

0 个答案:

没有答案