如何将我的C ++程序与newmat类链接?

时间:2016-07-24 15:35:10

标签: c++

我下载了newmat包,其中包括" include.h"和" newmat.h"我的程序中的标题,但它没有识别名称空间NEWMAT;如果我定义NEWMAT命名空间甚至删除整行,我会得到几个错误,如:

undefined reference to `BaseMatrix::t() const'

似乎没有链接到库,我在谷歌搜索解决方案,有人会说我已经从neewmat包中找到.o或.a库文件并将它们复制到lib文件夹,其他人说我应该使用:gcc myprogram.c thelibrary.o链接到库但是我没有在newmat包中找到任何类型为.o或.a的文件,并且dev-C ++编译器没有识别出使用gcc作为特别的东西。

我是初学者,如果有人能帮助我在程序中实现此程序包,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

以下是使用Debian / Ubuntu中的libnewmat10-dev package包的示例:

edd@max:~$ cd /tmp
edd@max:/tmp$ zcat /usr/share/doc/libnewmat10-dev/examples/example.cpp.gz > ex.cpp
edd@max:/tmp$ g++ ex.cpp -o ex -I/usr/include/newmat -lnewmat
edd@max:/tmp$ ./ex | head -25

Demonstration of Matrix package

Print a real number (may help lost memory test): 3.14159


Test 1 - traditional, bad

Estimates and their standard errors

    1.39166     0.53188 
    1.98310     0.20932 
    0.95221     0.27731 


Observations, fitted value, residual value, hat value
    2.400     1.700     8.300     7.770     0.530     0.280 
    1.800     0.900     5.500     5.818    -0.318     0.190 
    2.400     1.600     8.000     7.675     0.325     0.229 
    3.000     1.900     8.500     9.150    -0.650     0.446 
    2.000     0.500     5.700     5.834    -0.134     0.271 
    1.200     0.600     4.400     4.343     0.057     0.480 
    2.000     1.100     6.300     6.405    -0.105     0.143 
    2.700     1.000     7.900     7.698     0.202     0.153 
    3.600     0.500     9.100     9.007     0.093     0.808 
edd@max:/tmp$ 

有关详情,请参阅Robert的其他文档。我过去常常使用newmat - 从20多年前开始。但是现在,我更喜欢Conrad Sanderson的Armadillo

您需要查阅您的想法文档,了解如何更改链接命令,或使用Makefile