用多个文件编译c++程序

Compiling c++ program with multiple files

本文关键字:c++ 程序 编译 文件      更新时间:2023-10-16

我正试图用多个文件编译一个c++程序!

主文件.cc

#include<iostream>
#include "funcfile.hh"
int main()
{
init();
}

函数文件.hh

#include<iostream>
void init();

funcfile.cc

#include<iostream>
#include "funcfile.hh"
using namespace std;
void init()
{
cout<<"hi"<<endl;
}

我正在创建如下二进制文件:

> CC funcfile.cc mainfile.cc -o output
funcfile.cc:
mainfile.cc:
ld: warning: symbol .dynsym[19] has invalid section index; ignored:
        (file /usr/local/opt/SunWorkShop/sws_5.0/SUNWspro/lib/libm.so value=19);

当我执行输出时:

> ./output
hi
>

但我在这里关心的是,我是否应该关心编译过程中的信息:

ld: warning: symbol .dynsym[19] has invalid section index; ignored:
            (file /usr/local/opt/SunWorkShop/sws_5.0/SUNWspro/lib/libm.so value=19);

CC版本为:

> CC -V
CC: WorkShop Compilers 5.0 98/12/15 C++ 5.0

您使用的编译器已经有将近15年的历史了。ELF格式在那段时间里发生了一些变化,您的编译器似乎无法识别一些较新的特殊部分索引(例如,请参见表7-4)。这个警告不需要担心,但如果可能的话,我建议使用更新的编译器。