考虑下一个C / C ++代码:
//Main.c
#include <stdio.h>
#include "mkl_cblas.h"
int tfuuuuuuuuuuuuuu()
{
int Num = 10;
double A[30] = {0.0};
double B[30] = {0.0};
double C[9];
cblas_dgemm(CblasRowMajor, CblasTrans, CblasNoTrans, 3, 3, Num, 1.0, A, 3, B, 3, 0.0, C, 3);
return 0;
}
在DLL项目的MSVC 2015(x64 Win7)中构建它会导致链接器错误:
unresolved external symbol cblas_dgemm referenced in function tfuuuuuuuuuuuu
应该这样做是因为我没有链接到blas库。
但是在gcc(8.2.0,Centos7)中构建相同的代码
$ gcc -c -fPIC -I./include -o Main.o Main.c
$ gcc -shared -o libTest.so Main.o
没有给出任何链接错误!。
即使我没有针对所需的库进行链接,为什么也没有出现链接器错误?
在这种情况下,是否有一个链接器选项强制链接器错误?