致命错误LNK1120:1个未解决的外部因素&错误LNK2019:函数___tmainCRTStartup中引用了未解析的外部符号_main

时间:2014-09-24 18:32:47

标签: c++ windows

您好,请帮帮我。 我已经尝试了一些解决方案,但无法修复它。

我做了类似这样的事情和致命错误LNK1120:1个未解决的外部问题出现了。

**source code:**
#include<iostream>
#include<ctime>
#include<cstdlib>

using namespace std;

//Tabel Data Hubungan Antara Energi Radiasi Gamma dengan Koefisien Atenuasi Fotolistrik Bahan Aktif Argon
double tabel_Ar[81][2]={{1.00E-03,3.18E+03},{1.50E-03,1.10E+03},{2.00E-03,5.09E+02},{3.00E-03,1.68E+02},{3.20E-03,1.40E+02},{3.20E-03,1.27E+03},
    {4.00E-03,7.55E+02},{5.00E-03,4.21E+02},{6.00E-03,2.58E+02},{8.00E-03,1.17E+02},{1.00E-02,6.23E+01},{1.50E-02,1.93E+01},{2.00E-02,8.21E+00},
    {3.00E-02,2.40E+00},{4.00E-02,9.91E-01},{5.00E-02,4.95E-01},{6.00E-02,2.79E-01},{8.00E-02,1.13E-01},{1.00E-01,5.56E-02},{1.50E-01,1.54E-02},
    {2.00E-01,6.28E-03},{3.00E-01,1.82E-03},{4.00E-01,7.98E-04},{5.00E-01,4.35E-04},{6.00E-01,2.72E-04},{8.00E-01,1.38E-04},{1.00E+00,8.59E-05},
    {1.02E+00,8.12E-05},{1.25E+00,5.50E-05},{1.50E+00,3.98E-05},{2.00E+00,2.47E-05},{2.04E+00,2.39E-05},{3.00E+03,1.36E-05},{4.00E+00,9.20E-06},
    {5.00E+00,6.92E-06},{6.00E+00,5.53E-06},{7.00E+00,4.60E-06},{8.00E+00,3.94E-06},{9.00E+00,3.44E-06},{1.00E+01,3.05E-06},{1.10E+01,2.74E-06},
    {1.20E+01,2.49E-06},{1.30E+01,2.28E-06},{1.40E+01,2.10E-06},{1.50E+01,1.81E-06},{1.60E+01,1.60E-06},{1.80E+01,1.43E-06},{2.00E+01,1.29E-06},
    {2.20E+01,1.18E-06},{2.40E+01,1.08E-06},{2.60E+01,9.99E-07},{2.80E+01,9.30E-07},{3.00E+01,6.89E-07},{4.00E+01,5.48E-07},{5.00E+01,4.54E-07},
    {6.00E+01,3.39E-07},{1.00E+02,2.70E-07},{1.50E+02,1.79E-07},{2.00E+02,1.34E-07},{3.00E+02,8.92E-08},{4.00E+02,6.68E-08},{5.00E+02,5.34E-08},
    {6.00E+02,4.45E-08},{8.00E+02,3.34E-08},{1.00E+03,2.67E-08},{1.50E+03,1.78E-08},{2.00E+03,1.33E-08},{3.00E+03,8.88E-09},{4.00E+03,6.66E-09},
    {5.00E+03,5.33E-09},{6.00E+03,4.44E-09},{8.00E+03,3.33E-09},{1.00E+04,2.66E-09},{1.50E+04,1.78E-09},{2.00E+04,1.33E-09},{3.00E+04,8.88E-10},
    {4.00E+04,6.66E-10},{5.00E+04,5.33E-10},{6.00E+04,4.44E-10},{8.00E+04,3.33E-10},{1.00E+05,2.66E-10}};

//Tabel Data Hubungan Antara Energi Radiasi dengan Koefisien Atenuasi Fotolistrik Bahan Aktif NaI
double tabel_NaI[95][2]={{1.00E+00,7.79E+06},{1.04E+00,7.25E+06},{1.07E+00,6.74E+06},{1.07E+00,7.02E+06},{1.07E+00,7.93E+06},{1.07E+00,7.02E+06},
    {1.07E+00,7.92E+06},{1.50E+00,3.80E+06},{2.00E+00,1.92E+06},{3.00E+00,7.00E+05},{4.00E+00,3.35E+05},{4.56E+00,2.39E+05},{4.56E+00,6.59E+05},
    {4.70E+00,6.17E+05},{4.85E+00,5.77E+05},{4.85E+00,7.72E+05},{5.00E+00,7.28E+05},{5.19E+00,6.61E+05},{5.19E+00,7.60E+05},{6.00E+00,5.30E+05},
    {8.00E+00,2.49E+05},{1.00E+01,1.38E+05},{1.50E+01,4.57E+04},{2.00E+01,2.06E+04},{3.00E+01,6.61E+03},{3.32E+01,4.97E+03},{3.32E+01,2.98E+04},
    {4.00E+01,1.82E+04},{5.00E+01,1.01E+04},{6.00E+01,6.11E+03},{8.00E+01,2.75E+03},{1.00E+02,1.46E+03},{1.50E+02,4.59E+02},{2.00E+02,2.02E+02},
    {3.00E+02,6.48E+01},{4.00E+02,2.99E+01},{5.00E+02,1.68E+01},{6.00E+02,1.08E+01},{8.00E+02,5.59E+00},{1.00E+03,3.49E+00},{1.02E+03,3.32E+00},
    {1.25E+03,2.24E+00},{1.50E+03,1.60E+00},{2.00E+03,9.76E-01},{2.04E+03,9.42E-01},{3.00E+03,5.18E-01},{4.00E+03,3.43E-01},{5.00E+03,2.54E-01},
    {6.00E+03,2.00E-01},{7.00E+03,1.65E-01},{8.00E+03,1.40E-01},{9.00E+03,1.21E-01},{1.00E+04,1.07E-01},{1.10E+04,9.57E-02},{1.20E+04,8.65E-02},
    {1.30E+04,7.89E-02},{1.40E+04,7.25E-02},{1.50E+04,6.71E-02},{1.60E+04,6.24E-02},{1.80E+04,5.47E-02},{2.00E+04,4.87E-02},{2.20E+04,4.39E-02},
    {2.40E+04,4.00E-02},{2.60E+04,3.67E-02},{2.80E+04,3.39E-02},{3.00E+04,3.15E-02},{4.00E+04,2.32E-02},{5.00E+04,1.84E-02},{6.00E+04,1.52E-02},
    {8.00E+04,1.13E-02},{1.00E+05,9.00E-03},{1.50E+05,5.96E-03},{2.00E+05,4.46E-03},{3.00E+05,2.96E-03},{4.00E+05,2.22E-03},{5.00E+05,1.77E-03},
    {6.00E+05,1.47E-03},{8.00E+05,1.11E-03},{1.00E+06,8.83E-04},{1.50E+06,5.89E-04},{2.00E+06,4.41E-04},{3.00E+06,2.94E-04},{4.00E+06,2.21E-04},
    {5.00E+06,1.76E-04},{6.00E+06,1.47E-04},{8.00E+06,1.10E-04},{1.00E+07,8.82E-05},{1.50E+07,5.88E-05},{2.00E+07,4.41E-05},{3.00E+07,2.94E-05},
    {4.00E+07,2.20E-05},{5.00E+07,1.76E-05},{6.00E+07,1.47E-05},{8.00E+07,1.10E-05},{1.00E+08,8.82E-06}};

//Densitas Material yang Digunakan
struct sdensitas{char material[15]; double rho;};
sdensitas tabel_material[2]={{"NaI", 3.67},{"Ar", 1.784}};

//==========================================================SUB_PROGRAM=========================================================================//
//Sub Program Menghitung Nilai PR
double probabilitas()
{
    double PR;
    srand((unsigned int)time(NULL));
    return PR= 1.0*((double)(rand()+time(NULL)%100))/100;
}

//Sub Program Interpolasi
double y(double x1, double y1, double x2, double y2, double x)
{
    return y1+(y2-y1)/(x2-x1)*(x-x1);
}

//Sub Program Membaca Table

//Membaca Tabel 2 Kolom
void baca(double m[][2], int jklm, char teks[25], double& E, double& atenuasi, int&kolom)
{
    int k;
    //input data
    do{
        cout<<"Masukan Nilai Energi Radiasi= "<<teks<<"= "; cin>>E;
    } while (E<m[0][0]||E>m[jklm-1][0]);

    for(k=0; k<(jklm-1); k++)//baca Energy
    {
        if(E>=m[k][0]&&E<=m[k+1][0])
        {
            atenuasi=y(m[k][0], m[k][1], m[k+1][0], m[k+1][1], E); break;
        }
    }
    kolom=k;
}

//Membaca Tabel Ar dan NaI
void baca_tabel(int pilihan, int& kolom, double E, double atenuasi, double En, double At)
{
    int kolo;
    system("cls");
    cout<<"Input Besar Energi Radiasi Gamma yang Digunakan\n"
        <<"==================================================";
    switch (pilihan)
    {
    case 0:
        {
            baca(tabel_Ar, 81,"Energi Radiasi Gamma yang Digunakan", E, atenuasi, kolom);
        } break;
    case 1:
        {
            baca(tabel_NaI, 95, "Energi Radiasi Gamma yang Digunakan", En, At, kolo);
        }  break;
    }
}

//Menghitung Panjang Lintasan Radiasi
void hitung(double PR,double& atenuasi, double& At, double& rho)
{
    double x, nue;

    nue=atenuasi=At;
    x=-log(1-PR)/nue*rho;
}

//menghitung Intensitas Radiasi Hasil Interaksi Fotolistrik
void I(double& Io, double& PR)
{
    double I;
    I=Io*PR;
}

//Menghitung Efisiensi Detektor
void efisiensi(double& Io, double& I)
{
    double Eff;

    Eff=I/Io;
}

//Memasukan Input Data yang Dibutuhkan
void input()
{
    int PD, BA, Io, Ein;
    cout<<"\n\t\tPROGRAM PENGHITUNG EFISIENSI DETEKTOR RADIASI GAMMA"
        <<"\n\t============================================================"
        <<"\nKeterangan: "
        <<"\n1. Efisiensi detektor adalah fungsi geometri detektor."
        <<"\n2. Efisiensi detektor adalah fungsi koefisien atenuasi interaksi fotolistrik."
        <<"\n3. Efisiensi detektor adalah fungsi densitas material aktif detektor"
        <<"\n4. Efisiensi detektor adalah fungsi material aktif yang digunakan detektor.";
    cout<<"\n\tMasukan Input Perhitungan:";
    cout<<"\n\t 1. Masukan Besar Energi Radiasi yang Digunakan= "; cin>>Ein;
    cout<<"\n\t 2. Panjang Detektor yang Digunakan= "; cin>>PD;
    cout<<"\n\t 3. Bahan Aktif yang Digunakan= "; cin>>BA;
    cout<<"\n\t 4. Intensitas Awal Radiasi= "; cin>>Io;
}

//Menampilkan Hasil
int tampilkan_hasil(int pilihan, double E, double PR, double rho, int Io, double I, double x, double s, double Eff)
{
    system ("cls");
    cout<<"\n\tHasil Pembacaan Tabel dan Hasil Perhitungan"
        <<"\n\t============================================\n";
    switch (pilihan)
    {
    case 0:
        {
            cout<<"Energi Radiasi yang Diguanakan= "<<E;
            cout<<"Peluang Interaksi Fotolistrik Antara Radiasi Gamma dengan Material Aktif, PR= "<<PR<<endl;
            cout<<"Panjang Lintasan Radiasi= "<<x<<" cm"<<endl;
            cout<<"Panjang Aktif Detektor= "<<s<<" cm"<<endl;
            cout<<"Densitas Bahan Aktif, rho= "<<rho<<" g/cm3"<<endl;
            cout<<"Intensitas Awal Radiasi= "<<Io<<" photon/cm2.s"<<endl;
            cout<<"Hasil Cacah Intensitas Radiasi= "<<I<<" photon/cm2.s"<<endl;
        }break;
    case 1:
        {
            cout<<"Peluang Interaksi Fotolistrik Antara Radiasi Gamma dengan Material Aktif, PR= "<<PR<<endl;
            cout<<"Panjang Lintasan Radiasi= "<<x<<" cm"<<endl;
            cout<<"Panjang Aktif Detektor= "<<s<<" cm"<<endl;
            cout<<"Densitas Bahan Aktif, rho= "<<rho<<" g/cm3"<<endl;
            cout<<"Intensitas Awal Radiasi= "<<Io<<" photon/cm2.s"<<endl;
            cout<<"Hasil Cacah Intensitas Radiasi= "<<I<<" photon/cm2.s"<<endl;
        } break;
    }
    if(x<=s)
    {
        cout<<"Terjadi Interaksi";
        cout<<"Effisiensi Detektor adalah= "<<Eff<<endl;
    }
    else
    {
        cout<<"Tidak Terjadi Interaksi";
    }
    cout<<"Effisiensi Detektor adalah= "<<Eff<<endl;

system("pause");
return 0;
}


and the output:

1>------ Build started: Project: COBATUGAS2, Configuration: Debug Win32 ------
1>Build started 25/09/2014 1:16:59.
1>PrepareForBuild:
1>  Creating directory "E:\Komputasi Nuklir\COBATUGAS2\Debug\".
1>InitializeBuildStatus:
1>  Creating "Debug\COBATUGAS2.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  X.cpp
1>MSVCRTD.lib(crtexe.obj) : `error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup`
1>E:\Komputasi Nuklir\COBATUGAS2\Debug\COBATUGAS2.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:02.87
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
你可以告诉我如何解决它吗?

1 个答案:

答案 0 :(得分:0)

在OS中运行的每个C ++程序都必须具有入口点函数main。你的ptogram没有这样的功能。

来自C ++标准(3.6.1主要功能)

  

1程序应包含一个名为main的全局函数,即   指定的程序开始