尝试编译程序时,我收到错误
icpc -c main.cpp
main.cpp(4): error: expected a "{"
int main()
^
main.cpp(55): error: return value type does not match the function type
return 0;
^
似乎没有将我的主要功能识别为主功能。这是主要的功能代码,Makefile和标题:
的main.cpp
#include <iostream>
#include "main.h"
int main()
{
float p,c,dt;
float P[10001], C[10001];
std::cout<<"For the following inputs, the equilibrium values for population and CO2 concentration are 120 and 340 respectively. \nEnter your plant population, p, in 100m^2: ";
std::cin>>p;
std::cout<<"Enter your initial carbon concentration, c, in ppm: ";
std::cin>>c;
std::cout<<"Enter your time interval in number of hours: ";
std::cin>>dt;
dt = 0.01*dt;
co2(c,p,dt,P,C);
int idim,jdim,i1,i2,j1,j2;
idim=100;
jdim=100;
i1=0;
i2=100;
j1=0;
j2=100;
float Clo=0.0;
float Chi=5000.0;
float TR[6] = {0.5,1.,0.,0.5,0.,1.};
plotimage(C,idim,jdim,i1,i2,j1,j2,Clo,Chi,TR);
return 0;
}
标题文件:
float dcdt(float, float);
float dpdt(float, float);
void co2(float, float, float, float[], float[]);
void plot(float[], float[], float);
void plotimage(float [],int, int, int, int, int, int, float, float, float [])
生成文件:
main: main.o dcdt.o dpdt.o co2.o plot.o plotmap.o
icpc -o main main.o dcdt.o dpdt.o co2.o plot.o plotmap.o -ltrapfpe -lpgplot -lcpgplot -lX11
main.o: main.cpp main.h
icpc -c main.cpp
dcdt.o: dcdt.cpp main.h
icpc -c dcdt.cpp
dpdt.o: dpdt.cpp main.h
icpc -c dpdt.cpp
co2.o: co2.cpp main.h
icpc -c co2.cpp
plot.o: plot.cpp main.h
icpc -c plot.cpp
plotmap.o: plotmap.cpp main.h
icpc -c plotmap.cpp
答案 0 :(得分:2)
在标题中的最后一个函数原型后,您缺少分号:
void plotimage(float [],int, int, int, int, int, int, float, float, float []);
// Here --------------------------------------------------------^
这就是为什么编译器会告诉你它正在寻找一个开放的大括号:它看到了标题的最后一行(在main.cpp文件中逐字包含)并且认为它正在查看开头的函数定义,而不是前向声明。它会看到返回类型,名称和参数类型列表,因此接下来应该是一个开放的大括号。
答案 1 :(得分:0)
您错过了头文件中的分号
答案 2 :(得分:0)
#include<iostream>
using namespace std;