在调用数学库arpack++时,头文件blas1c.h:
(下面代码省略)
#include "arch.h"
#include "blas1f.h"
#ifndef BLAS1C_H
#define BLAS1C_H
// ASSUM
inline float assum(const ARint &n, const float dx[], const ARint &incx) {
return F77NAME(sasum)(&n, dx, &incx);
} // assum (float)
inline double assum(const ARint &n, const double dx[], const ARint &incx) {
return F77NAME(dasum)(&n, dx, &incx);
然后编译的时候报错,说这两个函数assum重载:
1>c:\users\yuxi\documents\visual studio 2010\projects\arpack\arpack\include\blas1c.h(29): error C2733: 不允许重载函数“assum”的第二个 C 链接
那么,怎么就判定了这个头文件是c的呢?我的代码都是c++的。也没有用extern C。怎么解决?
谢谢!
2 个解决方案
#1
如果是 微软的编译器
参数
/Tc , 以C代码来编译
/Tp , 以C++代码来编译
参数
/Tc , 以C代码来编译
/Tp , 以C++代码来编译
#2
不好意思,再问一下,这个参数该怎么用呢?在项目属性哪里添加呢?谢谢!
#1
如果是 微软的编译器
参数
/Tc , 以C代码来编译
/Tp , 以C++代码来编译
参数
/Tc , 以C代码来编译
/Tp , 以C++代码来编译
#2
不好意思,再问一下,这个参数该怎么用呢?在项目属性哪里添加呢?谢谢!