首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++使用ccfits读取fits文件

c++使用ccfits读取fits文件
EN

Stack Overflow用户
提问于 2014-04-03 02:30:07
回答 2查看 2.7K关注 0票数 2

所以..。有人能看到我做错了什么吗?!?我正在尝试使用CCfits在C++中读取一个*.fits文件,就像他们在http://heasarc.gsfc.nasa.gov/fitsio/CCfits/html/readimage.html中的例子一样。

代码语言:javascript
复制
#include <iostream>
#include <valarray>
#include <CCfits/CCfits.h>
#include <CCfits/PHDU.h>

namespace fit = CCfits;

int main(int argc, char * argv[]) {
    fit::FITS inFile(
        "../data/example/example.fits",
        fit::Read,
        true
    );

    fit::PHDU & phdu = inFile.pHDU();

    std::valarray<unsigned int> fitsImage;
    phdu.read(fitsImage);

    return 0;
}

我得到以下错误:

代码语言:javascript
复制
undefined reference to `void CCfits::PHDU::read<unsigned int>(std::valarray<unsigned int>&)'
collect2: error: ld returned 1 exit status

我将链接到以下内容:

代码语言:javascript
复制
g++ test.cpp -o test -L/usr/lib/x86_64-linux-gnu/ -std=c++11 -lCCfits -lcfitsio

尽管我看过/usr/include/CCfits/PHDU.h,它有这样的特性:

代码语言:javascript
复制
template<typename S>
void read(std::valarray<S>& image);

有没有可能libCCfits没有正确编译?

(这在某种程度上与CCfits library demo code not working有关,但由于没有人真正扩展到这一点...我什么都没有留下)。这快把我逼疯了,我在想我漏掉了一些非常明显的东西。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-05-07 16:16:59

如果没有libCCfits.so,这是您正在使用的Linux发行版中的错误。(我在较早的Fedora发行版上遇到过其他库的等价网络问题。)修复它的最简单方法是添加一个从libCCfits.solibCCfits.so.0libCCfits.so.0.0.0的符号链接,假设后者存在于..../.libs文件夹中。另一种方法是自己编译CCfits-2.4.tar.gz的源包,方法是

代码语言:javascript
复制
tar -xzf CCfits-2.4.tar.gz

cd CCfits

./configure --prefix=.... --with-cfitsio-include=..../cfitsio/cfitsio --enable-static LDFLAGS="-L..../cfitsio/cfitsio"

其中的点取决于您的首选项和底层cfitsio的位置。

票数 1
EN

Stack Overflow用户

发布于 2014-06-24 21:43:20

代码语言:javascript
复制
g++ ...  -Lblabla/CCfits/CCfits/.libs ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22820019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档