这似乎是我问题的正确答案,但我认为这更像是我编写makefile的方式,因为我已经有了下面链接中描述的步骤(我知道如何构建东西).
如何为使用线性代数的C++模板库Eigen编写C++项目的makefile?
SASAGeometry.h:6:22: error: Eigen/Core: No such file or directory
SASAGeometry.h:7:20: error: Eigen/LU: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我的头文件中有问题的行只是:
#include <Eigen/Core>
#include <Eigen/LU>
Run Code Online (Sandbox Code Playgroud)
所以这是makefile(我知道在INCLUDE行中有过分杀真):
CC = g++
BIN = .
INCLUDE = -I/usr/local/include/eigen2/ -I. -I/usr/local/include/eigen2/Eigen/ -I/home/mark/Applications/eigen/Eigen/src/ -I /usr/local/include
CFLAGS = -pipe
LFLAGS = -lm
GeomTest_OBJS = geomTest.o SASAGeometry.o
geomTest_source = SASAGeometry.cpp SASAGeometry.h sasa_transformMatrix.cpp sasa_transformMatrix.h geomSetup.cpp
geomTest : $(GeomTest_OBJS) makefile
$(CC) -o geomTest.o -o SASAGeometry.o $(LIBS) $(INCLUDE) $(CFLAGS) $(geomTest_source) $(LFLAGS)
$(CC) $(LIBS) $(INCLUDE) $(CFLAGS) -o $(BIN)/geomTest geomTest.o SASAGeometry.o $(LFLAGS)
clean …Run Code Online (Sandbox Code Playgroud) 对此抱歉,但我重新打开了这个.在对特征错误进行排序之后,这种裁剪再次向上重新启动.完全相同的代码完全相同的错误.(好吧,这次编译器找到了本征头.)所以,同样的问题:
我搜索了析构函数c ++和undefined引用无济于事.但是我很确定这对我来说是一个相当简单的问题.
/tmp/ccDsaJ9v.o: In function `main':
geomSetup.cpp:(.text+0x5ab): undefined reference to `SASAGeometry::~SASAGeometry()'
geomSetup.cpp:(.text+0x5cd): undefined reference to `SASAGeometry::~SASAGeometry()'
collect2: ld returned 1 exit status
make: *** [geomTest] Error 1
Run Code Online (Sandbox Code Playgroud)
class SASAGeometry
{
public:
//methods
SASAGeometry() ;
int makeFromFiles(char *, char *, char *) ;
~SASAGeometry() ;
//globals
std::list<E......};
Run Code Online (Sandbox Code Playgroud)
SASAGeometry::SASAGeometry(){}
int SASAGeometry::makeFromFiles(char * xyz_file, char * dat_file, char * atoms_file)
{
sasa_transformMatrix basisMaker ;
list<Vect...
...
}
SASAGeometry::~SASAGeometry(){}
Run Code Online (Sandbox Code Playgroud)
int main(int argv, char * argc[])
{
list<Vector3d>::iterator listIterator ; …Run Code Online (Sandbox Code Playgroud)