Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CGAL编译/链接器错误_C++_Eclipse_Cgal_Nsight - Fatal编程技术网

C++ CGAL编译/链接器错误

C++ CGAL编译/链接器错误,c++,eclipse,cgal,nsight,C++,Eclipse,Cgal,Nsight,我正试图在Nvidia的Nsight Eclipse studio(EclipseCDT)中设置CGAL。我不打算将其用于CUDA,但是我需要将其用于我正在进行的项目的另一部分 我得到的错误是: /home/me/work/x64_linux/cgal/include/CGAL/GMP/Gmpq_type.h:62: undefined reference to `__gmpq_init' 接下来是关于gmpq的其他几个相同错误。我认为这是一个关联问题,但就我所知,我不确定我错在哪里。我的其

我正试图在Nvidia的Nsight Eclipse studio(EclipseCDT)中设置CGAL。我不打算将其用于CUDA,但是我需要将其用于我正在进行的项目的另一部分

我得到的错误是:

/home/me/work/x64_linux/cgal/include/CGAL/GMP/Gmpq_type.h:62: 
undefined reference to `__gmpq_init'
接下来是关于gmpq的其他几个相同错误。我认为这是一个关联问题,但就我所知,我不确定我错在哪里。我的其他依赖项链接很好。我通过apt get安装了CGAL,并遵循手册中给出的设置说明。也许我在某个地方出了差错,但长话短说,我对如何让它发挥作用感到迷茫!欢迎提供任何帮助/提示

编辑:这是一个解决方案,供将来可能遇到这个问题的人参考

出于某种原因,尽管我的输入是正确的,IDE还是错误地引用了库。我只是打开了一个新项目,并将我的文件迁移了过去。添加库遵循Eclipse中的标准过程:转到项目属性->路径和符号。将库所在目录的路径添加到库路径,并将库名称添加到库

  • 确保在编译代码时,应该向编译器传递一个
    -l
    选项以链接到CGAL
  • 如果正在向编译器传递
    -l
    选项,请确保可以从路径中的文件夹访问CGAL库,或者正在传递CGAL库的完整路径

  • 如果不查看您的构建设置,我就没有什么可说的了。

    以下是解决方案,供将来可能遇到此问题的任何人使用


    出于某种原因,尽管我的输入是正确的,IDE还是错误地引用了库。我只是打开了一个新项目,并将我的文件迁移了过去。添加库遵循Eclipse中的标准过程:转到项目属性->路径和符号。将库所在目录的路径添加到库路径,并将库名称添加到库。如果您需要澄清,请询问。

    简短回答:
    -lgmp
    。更详细的回答:在这个网站上搜索“未定义的引用”。此外,CGAL还建议使用cmake,它可以为您处理此问题。@Marc这样我就可以让我的程序链接并使用自定义cmake设置进行编译。我注意到将-lgmp传递到目标链接器不起作用,我不得不将整个路径添加到文件中。不知道为什么。我尝试将整个路径添加到IDE中的库中,但它返回错误
    /usr/bin/ld:not find-l/usr/lib/x86_64-linux-gnu/libgmp。因此
    如果我能在IDE中实现这一点就好了,但它似乎找不到文件,即使给定了整个路径
    -l/usr/lib/x86_64-linux-gnu/libgmp.so
    :它不是这样工作的。“没用”:这么准确的错误信息…@Marc是的,我也能读,别担心。问题是为什么链接器找不到它-它存在,在目录中,我试着把它放在其他目录中,看看它是否解决了权限问题。除了我尝试过的显而易见的解决方案,以及google和SO提出的解决方案之外,我不确定还会发生什么。但是谢谢你的帮助。Noob问题:有什么方法可以很好地将我的项目属性下的构建设置导出到stackoverflow?如果没有,你有什么特别想检查的吗?我已经尝试了完整的路径;不能在IDE中工作,但可以与自定义cmake一起工作。@ak47777我目前正在工作,但回家后我将下载eclipse cdt并指导您如何链接库。不需要,我不久前设法修复了它!谢谢你的帮助。