我正在尝试运行一些" Hello world"在Eclipse Oxygen下使用CGAL库进行测试,但是我没有遇到十几个未定义的引用错误。
我按照建议的apt-driven installation method运行
sudo apt-get install libcgal-dev
sudo apt-get install libcgal-demo
但现在我完全迷失了如何链接库并使Eclipse正确包含和使用CGAL。
这是我尝试构建的程序:
#include <iostream>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <sstream>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point_2;
int main()
{
Point_2 p(0, 0.3), q, r(2, 0.9);
{
q = Point_2(1, 0.6);
std::cout << (CGAL::collinear(p,q,r) ? "collinear\n" : "not
collinear\n");
}
{
std::istringstream input("0 0.3 1 0.6 2 0.9");
input >> p >> q >> r;
std::cout << (CGAL::collinear(p,q,r) ? "collinear\n" : "not
collinear\n");
}
{
q = CGAL::midpoint(p,r);
std::cout << (CGAL::collinear(p,q,r) ? "collinear\n" : "not
collinear\n");
}
return 0;
}
这是我收到的错误的一个例子:
make all
Building target: exact
Invoking: Cross G++ Linker
g++ -L/usr/lib/x86_64-linux-gnu -L/usr/lib -o "exact" ./exact.o
./exact.o: In function `CGAL::Handle::Handle(CGAL::Handle const&)':
/usr/include/CGAL/Handle.h:55: undefined reference to
`CGAL::precondition_fail(char const*, char const*, int, char const*)'
makefile:44: recipe for target 'exact' failed
我尝试在Cross G ++ Linker和Cross GCC编译器下包含GCAL库所在的目录,但无济于事。
不幸的是,我在C ++编程和Eclipse中都是初学者!
感谢您的帮助!
答案 0 :(得分:0)
我经历了这么多次。 :d
以下是我所学到的课程*:
在GCC C ++ Linker下:
添加库CGAL,gmp,mpfr,boost_thread
设置库搜索路径:(您的路径)/CGAL-4.11.1/lib
在GCC C ++编译器下: - &gt;包括:添加包含路径(yourpath)/CGAL-4.11.1/include /
立即尝试。如果它仍然没有,因为您无法动态链接正确的文件,请添加&#34; -rpath /home/merlin/UbuntuSoftware/CGAL-4.11.1/lib"在链接器下的杂项下。
希望有所帮助。
梅林:)