【发布时间】:2010-11-07 21:33:40
【问题描述】:
我正在尝试让一些示例代码与OpenMS 一起愉快地工作,但遇到了很多麻烦。我有(只是作为示例发布的一个小示例程序):
#include <OpenMS/FILTERING/SMOOTHING/GaussFilter.h>
#include <OpenMS/FORMAT/MzMLFile.h>
#include <OpenMS/KERNEL/StandardTypes.h>
#include <stdio.h>
using namespace OpenMS;
using namespace std;
Int main(){
PeakMap exp;
MzMLFile mzdata_file;
mzdata_file.load("../sampledata_Centroidmode.mzML",exp);
GaussFilter g;
Param param;
param.setValue("gaussian_width",1.0);
g.setParameters(param);
g.filterExperiment(exp);
return 0;
}
然后我编译它:
g++ -Wall -IOpenMS-1.7.0/include -IOpenMS-1.7.0/contrib/include -I/Library/Frameworks/QtCore.framework/Headers -arch i386 scratch.cpp
它出现了大量错误(实际上大约有 500Kb)。问题似乎在于“使用命名空间 OpenMS;”错误的小样本:
Undefined symbols:
"OpenMS::DataValue::DataValue(int)", referenced from:
OpenMS::Internal::MzMLHandler<OpenMS::MSExperiment<OpenMS::Peak1D, OpenMS::ChromatogramPeak> >::handleUserParam_(OpenMS::String const&, OpenMS::String const&, OpenMS::String const&, OpenMS::String const&, OpenMS::String const&)in cc7cSzjW.o
"OpenMS::DataValue::DataValue()", referenced from:
OpenMS::Internal::MzMLHandler<OpenMS::MSExperiment<OpenMS::Peak1D, OpenMS::ChromatogramPeak> >::handleUserParam_(OpenMS::String const&, OpenMS::String const&, OpenMS::String const&, OpenMS::String const&, OpenMS::String const&)in cc7cSzjW.o
"OpenMS::SourceFile::operator!=(OpenMS::SourceFile const&) const", referenced from:
OpenMS::Internal::MzMLHandler<OpenMS::MSExperiment<OpenMS::Peak1D, OpenMS::ChromatogramPeak> >::writeTo(std::basic_ostream<char, std::char_traits<char> >&)in cc7cSzjW.o
OpenMS::Internal::MzMLHandler<OpenMS::MSExperiment<OpenMS::Peak1D, OpenMS::ChromatogramPeak> >::writeTo(std::basic_ostream<char, std::char_traits<char> >&)in cc7cSzjW.o
OpenMS::Internal::MzMLHandler<OpenMS::MSExperiment<OpenMS::Peak1D, OpenMS::ChromatogramPeak> >::writeTo(std::basic_ostream<char, std::char_traits<char> >&)in cc7cSzjW.o
...
ld: symbol(s) not found
collect2: ld returned 1 exit status
有人知道我做错了什么吗?
【问题讨论】:
标签: c++ compiler-construction compiler-errors