i.landsat.toar compilation fails when compiling using clang compiler. The error is:
undefined reference to `date_replace_slash’
This function is defined using inline keyword:
inline void date_replace_slash(char *str)
I know inline is not part of C89. However, I’m not sure about the fix. I can fix it by replacing inline by __inline__. This works for GCC [1] and clang (should support GCC extensions) but I’m not sure about other compilers (on the less usual platforms).
Moreover, I actually don’t know how what causes the error in the first place.
Alternative fixes are macro but I would just do the normal function and hope for compiler optimization.
On Sun, Oct 20, 2013 at 5:46 AM, Vaclav Petras <wenzeslaus@gmail.com> wrote:
Hi,
i.landsat.toar compilation fails when compiling using clang compiler. The
error is:
undefined reference to `date_replace_slash'
This function is defined using ``inline`` keyword:
inline void date_replace_slash(char *str)
I know ``inline`` is not part of C89. However, I'm not sure about the fix. I
can fix it by replacing ``inline`` by ``__inline__``. This works for GCC [1]
and clang (should support GCC extensions) but I'm not sure about other
compilers (on the less usual platforms).
"static" may be a viable solution. For comments on this, see also
Fixed according to G7: landsat_met.c:103: undefined reference to `chrncpy’ [2] where the chrncpy from the same file causes the same error and is only static now.
static inline works fine, too, but date_replace_slash does not meet criteria for being inline specified in [2] by Glynn: It is not simple enough (has a loop inside) and moreover, it’s called only a few times (raw guess).
i.landsat.toar compilation fails when compiling using clang compiler. The
error is:
undefined reference to `date_replace_slash’
This function is defined using inline keyword:
inline void date_replace_slash(char *str)
I know inline is not part of C89. However, I’m not sure about the fix. I
can fix it by replacing inline by __inline__. This works for GCC [1]
and clang (should support GCC extensions) but I’m not sure about other
compilers (on the less usual platforms).
“static” may be a viable solution. For comments on this, see also