c++ - 是否可以在 gcc/g++ 中强制链接器错误?
问题描述
考虑下一个 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
没有给出任何链接错误!
为什么即使我没有链接到所需的库,我也没有收到链接器错误?
在这种情况下是否有链接器选项来强制链接器错误?
解决方案
推荐阅读
- laravel - 我认为可以分解的控制器逻辑中的分解辅助
- python - ValueError:形状 (None, 9) 和 (None, 10) 不兼容
- python - cmake 无法在 conda 环境中找到 boost python
- c# - 跟踪、调试和信息消息未从 WorkerService 到达 App Insights
- haskell - 围绕 IO 创建一个包装器 Monad
- debugging - 在 VS Code 中使用 Docker-compose 调试 Odoo
- r - 将数据框中的所有数字列四舍五入为不同的位数
- javascript - Node/JavaScript 中的条件语句 - 超出调用堆栈大小
- python - 如何使用 min、max 和 sum 从一到百万求和?(循环中)
- winapi - 如何在 WINAPI 中获取 Windows 10 构建版本、修订号?