Cannot build on Ubuntu 18.04, gcc 6 and 7
amelnichenko opened this issue · 5 comments
I experienced an error during the make command.
The error on make is the following:
Scanning dependencies of target apriltag
[ 3%] Building C object core/CMakeFiles/apriltag.dir/apriltag.c.o
[ 5%] Building C object core/CMakeFiles/apriltag.dir/tag25h7.c.o
[ 3%] Building C object core/CMakeFiles/apriltag.dir/tag16h5.c.o
[ 7%] Building C object core/CMakeFiles/apriltag.dir/apriltag_quad_thresh.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag25h7.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag16h5.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag25h7.c: In function ‘tag25h7_create’:
/data/melnichenko/Progs/apriltag/core/tag25h7.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag25h7");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag25h7.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag25h7");
^
/data/melnichenko/Progs/apriltag/core/tag16h5.c: In function ‘tag16h5_create’:
/data/melnichenko/Progs/apriltag/core/tag16h5.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag16h5");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag16h5.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag16h5");
^
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/apriltag.c:32:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘rotate90’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:89:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int32_t c = 0; c < d; c++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘quick_decode_init’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:180:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < family->ncodes; i++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘quad_decode’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:602:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int pattern_idx = 0; pattern_idx < sizeof(patterns)/(5*sizeof(float)); pattern_idx ++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c:607:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < 2*family->black_border + family->d; i++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c:637:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int bitidx = 0; bitidx < family->d * family->d; bitidx++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘apriltag_detector_detect’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:1129:9: warning: implicit declaration of function ‘srandom’; did you mean ‘srand’? [-Wimplicit-function-declaration]
srandom(0);
^~~~~~~
srand
/data/melnichenko/Progs/apriltag/core/apriltag.c:1136:33: warning: implicit declaration of function ‘random’; did you mean ‘randf’? [-Wimplicit-function-declaration]
int color = bias + (random() % (255-bias));
^~~~~~
randf
[ 9%] Building C object core/CMakeFiles/apriltag.dir/tag25h9.c.o
In file included from /data/melnichenko/Progs/apriltag/core/apriltag_quad_thresh.c:44:0:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h: In function ‘unionfind_create’:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h:63:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i <= maxid; i++) {
^~
/data/melnichenko/Progs/apriltag/core/apriltag_quad_thresh.c: In function ‘apriltag_quad_thresh’:
/data/melnichenko/Progs/apriltag/core/apriltag_quad_thresh.c:1705:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (unionfind_get_set_size(uf, v) < td->qtp.min_cluster_pixels)
^
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag25h9.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag25h9.c: In function ‘tag25h9_create’:
/data/melnichenko/Progs/apriltag/core/tag25h9.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag25h9");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag25h9.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag25h9");
^
[ 11%] Building C object core/CMakeFiles/apriltag.dir/tag36h10.c.o
[ 13%] Building C object core/CMakeFiles/apriltag.dir/tag36h11.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag36h10.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag36h10.c: In function ‘tag36h10_create’:
/data/melnichenko/Progs/apriltag/core/tag36h10.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag36h10");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag36h10.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag36h10");
^
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag36h11.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag36h11.c: In function ‘tag36h11_create’:
/data/melnichenko/Progs/apriltag/core/tag36h11.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag36h11");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag36h11.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag36h11");
^
[ 15%] Building C object core/CMakeFiles/apriltag.dir/tag36artoolkit.c.o
[ 17%] Building C object core/CMakeFiles/apriltag.dir/g2d.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag36artoolkit.c:35:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag36artoolkit.c: In function ‘tag36artoolkit_create’:
/data/melnichenko/Progs/apriltag/core/tag36artoolkit.c:40:16: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("artoolkit");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag36artoolkit.c:40:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("artoolkit");
^
[ 19%] Building C object core/CMakeFiles/apriltag.dir/apriltag_family.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/apriltag_family.c:1:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
[ 21%] Building C object core/CMakeFiles/apriltag.dir/common/zarray.c.o
[ 23%] Building C object core/CMakeFiles/apriltag.dir/common/zhash.c.o
[ 25%] Building C object core/CMakeFiles/apriltag.dir/common/zmaxheap.c.o
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_get’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:143:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_get_volatile’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:166:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_put_real’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:195:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_remove’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:245:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c:262:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (i != bucket->size - 1) {
^~
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_iterator_next_volatile’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:368:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (zit->idx < bucket->size) {
^
/data/melnichenko/Progs/apriltag/core/common/zmaxheap.c: In function ‘zmaxheap_test’:
/data/melnichenko/Progs/apriltag/core/common/zmaxheap.c:369:14: warning: implicit declaration of function ‘random’; did you mean ‘rand’? [-Wimplicit-function-declaration]
if ((random() & 1) == 0 && sz < cap) {
^~~~~~
rand
[ 26%] Building C object core/CMakeFiles/apriltag.dir/common/unionfind.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/unionfind.c:32:0:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h: In function ‘unionfind_create’:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h:63:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i <= maxid; i++) {
^~
[ 28%] Building C object core/CMakeFiles/apriltag.dir/common/matd.c.o
[ 30%] Building C object core/CMakeFiles/apriltag.dir/common/image_u8.c.o
/data/melnichenko/Progs/apriltag/core/common/image_u8.c: In function ‘image_u8_write_pnm’:
/data/melnichenko/Progs/apriltag/core/common/image_u8.c:181:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (im->width != fwrite(&im->buf[y*im->stride], 1, im->width, f)) {
^~
[ 32%] Building C object core/CMakeFiles/apriltag.dir/common/pnm.c.o
[ 34%] Building C object core/CMakeFiles/apriltag.dir/common/image_f32.c.o
[ 36%] Building C object core/CMakeFiles/apriltag.dir/common/image_u32.c.o
[ 38%] Building C object core/CMakeFiles/apriltag.dir/common/workerpool.c.o
[ 40%] Building C object core/CMakeFiles/apriltag.dir/common/time_util.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/time_util.c:32:0:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/common/time_util.c:57:2: error: invalid preprocessing directive #void
#void utime_to_timespec(int64_t v, struct timespec *ts)
^~~~
/data/melnichenko/Progs/apriltag/core/common/time_util.c:58:2: error: invalid preprocessing directive #{
#{
^
/data/melnichenko/Progs/apriltag/core/common/time_util.c:59:6: error: invalid preprocessing directive #ts
# ts->tv_sec = (time_t) utime_get_seconds(v);
^~
/data/melnichenko/Progs/apriltag/core/common/time_util.c:60:6: error: invalid preprocessing directive #ts
# ts->tv_nsec = (suseconds_t) utime_get_useconds(v)*1000;
^~
/data/melnichenko/Progs/apriltag/core/common/time_util.c:61:2: error: invalid preprocessing directive #}
#}
^
/data/melnichenko/Progs/apriltag/core/common/time_util.c: In function ‘timeutil_usleep’:
/data/melnichenko/Progs/apriltag/core/common/time_util.c:66:12: warning: implicit declaration of function ‘usleep’; did you mean ‘sleep’? [-Wimplicit-function-declaration]
return usleep(useconds);
^~~~~~
sleep
core/CMakeFiles/apriltag.dir/build.make:542: recipe for target 'core/CMakeFiles/apriltag.dir/common/time_util.c.o' failed
make[2]: *** [core/CMakeFiles/apriltag.dir/common/time_util.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:93: recipe for target 'core/CMakeFiles/apriltag.dir/all' failed
make[1]: *** [core/CMakeFiles/apriltag.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
The output of cmake is the following:
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for one of the modules 'opencv>=2.3;opencv-2.3.1;opencv-3.0.0'
-- Configuring done
-- Generating done
-- Build files have been written to: /data/melnichenko/Progs/apriltag/build
I found that this issue can be fixed for me by commenting/deleting the function
void utime_to_timespec(int64_t v, struct timespec *ts)
i.e lines 57-61 of core/common/time_util.c
Than you for your work.
Best regards, Alexandra.
I am concerned about some of the errors I am seeing above, for instance this one:
/data/melnichenko/Progs/apriltag/core/common/time_util.c:57:2: error: invalid preprocessing directive #void
#void utime_to_timespec(int64_t v, struct timespec *ts)
If you look at the corresponding file in the master branch, you will find the corresponding line 57 does not start with a hash mark # .
Perhaps you attempted to introduce Python-style comments to a C file? In any event, the code probably been improperly edited. Please check out a clean copy of the repo and try again – if you still see errors, we can proceed from there.
Sorry, maybe I put he wrong output by mistake. The correct one is
Scanning dependencies of target apriltag
[ 1%] Building C object core/CMakeFiles/apriltag.dir/tag25h7.c.o
[ 3%] Building C object core/CMakeFiles/apriltag.dir/tag16h5.c.o
[ 7%] Building C object core/CMakeFiles/apriltag.dir/apriltag_quad_thresh.c.o
[ 7%] Building C object core/CMakeFiles/apriltag.dir/apriltag.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag25h7.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag25h7.c: In function ‘tag25h7_create’:
/data/melnichenko/Progs/apriltag/core/tag25h7.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag25h7");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag25h7.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag25h7");
^
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag16h5.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/apriltag.c:32:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag16h5.c: In function ‘tag16h5_create’:
/data/melnichenko/Progs/apriltag/core/tag16h5.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag16h5");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag16h5.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag16h5");
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘rotate90’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:89:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int32_t c = 0; c < d; c++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘quick_decode_init’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:180:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < family->ncodes; i++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘quad_decode’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:602:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int pattern_idx = 0; pattern_idx < sizeof(patterns)/(5*sizeof(float)); pattern_idx ++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c:607:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < 2*family->black_border + family->d; i++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c:637:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int bitidx = 0; bitidx < family->d * family->d; bitidx++) {
^
/data/melnichenko/Progs/apriltag/core/apriltag.c: In function ‘apriltag_detector_detect’:
/data/melnichenko/Progs/apriltag/core/apriltag.c:1129:9: warning: implicit declaration of function ‘srandom’; did you mean ‘srand’? [-Wimplicit-function-declaration]
srandom(0);
^~~~~~~
srand
/data/melnichenko/Progs/apriltag/core/apriltag.c:1136:33: warning: implicit declaration of function ‘random’; did you mean ‘randf’? [-Wimplicit-function-declaration]
int color = bias + (random() % (255-bias));
^~~~~~
randf
In file included from /data/melnichenko/Progs/apriltag/core/apriltag_quad_thresh.c:44:0:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h: In function ‘unionfind_create’:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h:63:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i <= maxid; i++) {
^~
/data/melnichenko/Progs/apriltag/core/apriltag_quad_thresh.c: In function ‘apriltag_quad_thresh’:
/data/melnichenko/Progs/apriltag/core/apriltag_quad_thresh.c:1705:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (unionfind_get_set_size(uf, v) < td->qtp.min_cluster_pixels)
^
[ 9%] Building C object core/CMakeFiles/apriltag.dir/tag25h9.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag25h9.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag25h9.c: In function ‘tag25h9_create’:
/data/melnichenko/Progs/apriltag/core/tag25h9.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag25h9");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag25h9.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag25h9");
^
[ 11%] Building C object core/CMakeFiles/apriltag.dir/tag36h10.c.o
[ 13%] Building C object core/CMakeFiles/apriltag.dir/tag36h11.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag36h10.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag36h10.c: In function ‘tag36h10_create’:
/data/melnichenko/Progs/apriltag/core/tag36h10.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag36h10");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag36h10.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag36h10");
^
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag36h11.c:36:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag36h11.c: In function ‘tag36h11_create’:
/data/melnichenko/Progs/apriltag/core/tag36h11.c:41:15: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("tag36h11");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag36h11.c:41:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("tag36h11");
^
[ 15%] Building C object core/CMakeFiles/apriltag.dir/tag36artoolkit.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/tag36artoolkit.c:35:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/tag36artoolkit.c: In function ‘tag36artoolkit_create’:
/data/melnichenko/Progs/apriltag/core/tag36artoolkit.c:40:16: warning: implicit declaration of function ‘strdup’; did you mean ‘strcmp’? [-Wimplicit-function-declaration]
tf->name = strdup("artoolkit");
^~~~~~
strcmp
/data/melnichenko/Progs/apriltag/core/tag36artoolkit.c:40:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
tf->name = strdup("artoolkit");
^
[ 17%] Building C object core/CMakeFiles/apriltag.dir/g2d.c.o
[ 19%] Building C object core/CMakeFiles/apriltag.dir/apriltag_family.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/timeprofile.h:44:0,
from /data/melnichenko/Progs/apriltag/core/apriltag.h:45,
from /data/melnichenko/Progs/apriltag/core/apriltag_family.c:1:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
[ 21%] Building C object core/CMakeFiles/apriltag.dir/common/zarray.c.o
[ 23%] Building C object core/CMakeFiles/apriltag.dir/common/zhash.c.o
[ 25%] Building C object core/CMakeFiles/apriltag.dir/common/zmaxheap.c.o
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_get’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:143:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_get_volatile’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:166:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_put_real’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:195:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_remove’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:245:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < bucket->size; i++) {
^
/data/melnichenko/Progs/apriltag/core/common/zhash.c:262:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (i != bucket->size - 1) {
^~
/data/melnichenko/Progs/apriltag/core/common/zhash.c: In function ‘zhash_iterator_next_volatile’:
/data/melnichenko/Progs/apriltag/core/common/zhash.c:368:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (zit->idx < bucket->size) {
^
/data/melnichenko/Progs/apriltag/core/common/zmaxheap.c: In function ‘zmaxheap_test’:
/data/melnichenko/Progs/apriltag/core/common/zmaxheap.c:369:14: warning: implicit declaration of function ‘random’; did you mean ‘rand’? [-Wimplicit-function-declaration]
if ((random() & 1) == 0 && sz < cap) {
^~~~~~
rand
[ 26%] Building C object core/CMakeFiles/apriltag.dir/common/unionfind.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/unionfind.c:32:0:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h: In function ‘unionfind_create’:
/data/melnichenko/Progs/apriltag/core/common/unionfind.h:63:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i <= maxid; i++) {
^~
[ 28%] Building C object core/CMakeFiles/apriltag.dir/common/matd.c.o
[ 30%] Building C object core/CMakeFiles/apriltag.dir/common/image_u8.c.o
/data/melnichenko/Progs/apriltag/core/common/image_u8.c: In function ‘image_u8_write_pnm’:
/data/melnichenko/Progs/apriltag/core/common/image_u8.c:181:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (im->width != fwrite(&im->buf[y*im->stride], 1, im->width, f)) {
^~
[ 32%] Building C object core/CMakeFiles/apriltag.dir/common/pnm.c.o
[ 34%] Building C object core/CMakeFiles/apriltag.dir/common/image_f32.c.o
[ 36%] Building C object core/CMakeFiles/apriltag.dir/common/image_u32.c.o
[ 38%] Building C object core/CMakeFiles/apriltag.dir/common/workerpool.c.o
[ 40%] Building C object core/CMakeFiles/apriltag.dir/common/time_util.c.o
In file included from /data/melnichenko/Progs/apriltag/core/common/time_util.c:32:0:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:45: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/common/time_util.c:57:42: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
void utime_to_timespec(int64_t v, struct timespec *ts)
^~~~~~~~
/data/melnichenko/Progs/apriltag/core/common/time_util.c:57:6: error: conflicting types for ‘utime_to_timespec’
void utime_to_timespec(int64_t v, struct timespec *ts)
^~~~~~~~~~~~~~~~~
In file included from /data/melnichenko/Progs/apriltag/core/common/time_util.c:32:0:
/data/melnichenko/Progs/apriltag/core/common/time_util.h:48:9: note: previous declaration of ‘utime_to_timespec’ was here
void utime_to_timespec(int64_t v, struct timespec *ts);
^~~~~~~~~~~~~~~~~
/data/melnichenko/Progs/apriltag/core/common/time_util.c: In function ‘utime_to_timespec’:
/data/melnichenko/Progs/apriltag/core/common/time_util.c:59:7: error: dereferencing pointer to incomplete type ‘struct timespec’
ts->tv_sec = (time_t) utime_get_seconds(v);
^~
/data/melnichenko/Progs/apriltag/core/common/time_util.c: In function ‘timeutil_usleep’:
/data/melnichenko/Progs/apriltag/core/common/time_util.c:66:12: warning: implicit declaration of function ‘usleep’; did you mean ‘sleep’? [-Wimplicit-function-declaration]
return usleep(useconds);
^~~~~~
sleep
core/CMakeFiles/apriltag.dir/build.make:542: recipe for target 'core/CMakeFiles/apriltag.dir/common/time_util.c.o' failed
make[2]: *** [core/CMakeFiles/apriltag.dir/common/time_util.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:93: recipe for target 'core/CMakeFiles/apriltag.dir/all' failed
make[1]: *** [core/CMakeFiles/apriltag.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
The repository is certainly clean one updated to the latest commit.
As I mentioned, I managed to build it with void utime_to_timespec(int64_t v, struct timespec *ts)
deleted in core/common/time_util.c but I get Segmentation fault (core dumped)
on every alpintag demo((
Initially I had no clue how to fix this, but on the Ubuntu 18.04 box I had access to, changing from -std=c99
to -std=gnu99
fixed the problem. Thanks, Google! https://stackoverflow.com/questions/3875197/linux-gcc-with-std-c99-complains-about-not-knowing-struct-timespec
Committed in ac58e4c – please let me know if that fixed the problem for you.