4

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

主文件.cc

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

函数文件.hh

#include<iostream>
void init();

函数文件.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
4

1 回答 1

1

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

于 2013-07-05T22:04:12.210 回答