我有多个使用Visual Studio和Visual C++
编译器创建的静态库。
我也在使用CxxTest进行单元测试。我在.h文件中创建了测试并生成了测试运行器文件runner.cpp
。
接下来我需要做的是编译runner.cpp
文件。
runner.cpp
使用其中一个库CommonLib.lib
。 CommonLib.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 ++创建静态库?