我正在尝试使用Centos 6.5中的make构建一个软件包,该软件包已在Fedora 8中成功构建。 我对文件进行了一些更改,并降级了Centos中的一些依赖项。 当我做的时候,我收到一个链接器错误:
/home/wjn/Desktop/samPro/src/graphEdit.o:
In function `GW::graphEdit::setPoints(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': graphEdit.cpp:(.text+0x88): undefined reference to `bool GW::GraphUtils::create<GW::MathVector<double, 3, GW::MathVectorColumn>
>(GW::Graph<double, 3, GW::GraphColumn>&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char, char, char)' collect2: ld returned 1 exit status
我查看了make发起的gcc命令,它是:
/usr/bin/g++ -D_GNU_SOURCE -O3 -mfpmath=sse -finline-limit=1000 -shared -Xlinker --no-undefined -Wl,-soname,libGraphImg.so
-o /home/wjn/Desktop/samPro/lib/graphImg.so /home/wjn/Desktop/samPro/src/graphType.o
/home/wjn/Desktop/samPro/src/graphCalibration.o
/home/wjn/Desktop/samPro/src/graphEdit.o
/home/wjn/Desktop/samPro/src/imgMorph.o
-L/home/wjn/Desktop/samPro/lib -Wl,
-rpath-link=/home/wjn/Desktop/samPro/lib -Wl,
-Bdynamic -lpthread -lm -lc
所以我检查了graphUtils.h和graphUtils.cpp,bool GW :: GraphUtils :: create已正确定义,但没有graphUtils.o。 它完全内置在Fedora 8中,所以我猜这是一个编译器版本的问题? Centos有GCC 4.4.7而Fedora有4.1.2,这可能是问题吗?如果我不想使用旧的GCC来构建它,我该怎么做才能解决这个问题。