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

时间:2013-07-03 06:06:38

标签: c++ compiler-construction compilation compiler-errors

我正在尝试编译一个包含多个文件的c ++程序!

mainfile.cc

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

funcfile.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

1 个答案:

答案 0 :(得分:1)

您使用的编译器已有近15年的历史。 ELF格式在此期间发展了一点,似乎您的编译器无法识别某些较新的特殊节索引(请参阅例如here, table 7-4)。这个警告不用担心,但如果可能的话,我建议使用更新的编译器。