Compiling qhull

Compiling qhull

Dear all,

I'm trying to compiler qhull I edited the makefile

by specifying CC = icc and CXX = icpc, I've thought it was enough.

However the compilation fails. There are an additional options for CC/CXX

CC_OPTS1  = -O2 -fPIC -ansi -Isrc/libqhull $(CC_WARNINGS)
CXX_OPTS1 = -O2 -Dqh_QHpointer -Isrc/ -Isrc/libqhullcpp -Isrc/libqhull $(CXX_WARNINGS)

the warning switches are

CC_WARNINGS  = -Wall -Wcast-qual -Wextra -Wwrite-strings -Wshadow
CXX_WARNINGS = -Wall -Wcast-qual -Wextra -Wwrite-strings -Wno-sign-conversion -Wshadow -Wconversion

The (main) error occurs at line (106) of qhull-2012.1/src/libqhull/qhull_a.h, i.e. at

#if defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN)
template <typename T>
inline void qhullUnused(T &x) { (void)x; }
#  define QHULL_UNUSED(x) qhullUnused(x);
#  define QHULL_UNUSED(x) (void)x;

I cannot figure what is the solution. Can anyone help me?

Thank you, very much.


7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


Can you please tell us what error you are seeing and attach the preprocessed source so we can see what the macro is being expanded to?



Well, launching icc -EP qhull_a.h it gives a long output and the macro expand as

template <typename T>
inline void qhullUnused(T &x) { (void)x; }

It is a template function and nothing seems to be missing.

The output of full compilation is quite short

mkdir -p bin lib
icc -c -O2 -fPIC -ansi -Isrc/libqhull -Wall -Wcast-qual -Wextra -Wwrite-strings -Wshadow -o src/rbox/rbox.o src/rbox/rbox.c
icc -c -O2 -fPIC -ansi -Isrc/libqhull -Wall -Wcast-qual -Wextra -Wwrite-strings -Wshadow -o src/libqhullstatic/global.o src/libqhull/global.c
src/libqhull/qhull_a.h(106): warning #77: this declaration has no storage class or type specifier
  template <typename T>

src/libqhull/qhull_a.h(106): error: expected a ";"
  template <typename T>

src/libqhull/qhull_a.h(115): warning #12: parsing restarts here after previous syntax error
  void    qh_qhull(void);

compilation aborted for src/libqhull/global.c (code 2)
make: *** [src/libqhullstatic/global.o] Errore 2


However, I am looking for a ND Delaunay triangulator, do someone know kinda-of working with ICC??


It looks like you are compiling a C++ file with icc not icpc.



Either that or there's a bug in the header file that causes it to only work for C++ (since templates are a C++ only feature).


@Judith: Thanks, it could be. I'll try to force C++ compilation on whole code.

Does someone know a working C routine for n-dimensional Delaunay triangulation?



i have download qhull and compiled with Parallel Studio XE 2013 ( Compiler Version 14.0.2 )

no problems.

1) cmake CMakeLists.txt

2) build with

make CC=icpc CXX=icc

no problems , correct compile, build all,

testqset works normal, q_test works normal

i use as environment:

Linux openSUSE 13.2 Milestone 0 64 Bit (x86_64) Kernel 3.14.0-5, KDE 4.13, XServer 11.0 NVIDIA Driver 334.21

icc (ICC) 14.0.2 20140120
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

icpc (ICC) 14.0.2 20140120
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.







Leave a Comment

Please sign in to add a comment. Not a member? Join today