c++ gcc多文件链接出现undefined reference to怎么解决? 财富值21

2016-10-11 07:44发布

我想不是代码的错,试了用vc98可以编译,但是用gcc就不行,用gcc写其他链接还是这个问题。
我还把代码贴上来吧。
头文件.....................

ifndef SALES_H_INCLUDED define SALES_H_INCLUDED namespace SALES {     const int Q=4;     struct Sales     {         double sales[Q];         double average;         double max;         double min;     };     void setsales(Sales& s,const double ar[],int n);     void setsales(Sales& s);     void showsales(const Sales& s); }   #endif // SALES_H_INCLUDED

源文件1.................................

#include<iostream> #include"sales.h"  namespace SALES {     using namespace std;          void setsales(Sales& s,const double ar[],int n)     {         double max=ar[0],min=ar[0],sum=ar[0];         for(int i=1;i<n;i++)         {             if(ar[i]>max)                 max=ar[i];             if(ar[i]<min)                 min=ar[i];                 sum+=ar[i];         }         s.max=max;         s.min=min;         s.average=sum/++n;     }     void setsales(Sales& s);     void showsales(const Sales& s); } 

main源文件............................

include<iostream> include"sales.h" using namespace std;  int main() {     using namespace SALES;     Sales m1,m2;     double a[4]={1.1,2.2,3.3,4.4};     setsales(m1,a,4); } 
4条回答

VS2015的clang大部分兼容gcc,可以通过编译,楼上的知乎问题主要是template函数,函数声明与定义要在同一头文件下的。所以我个人认为是编译器问题吧

一周热门 更多>