the c99 standard (ISO/IEC 9899:1999) says that the length field of pintf format placeholder can be L, that apply only to float number. Thi is confirmed also in printf(3) manpage:
L
A following a, A, e, E, f, F, g, or G conversion corresponds to a long double argument.
If I compile this:
printf("%Ld",3);
using -std=c99 gcc argument, I get a warning:
warning: format ‘%Ld’ expects argument of type ‘long long int’, but argument 2 has type ‘int’ [-Wformat=]
printf("%Ld",3);
^
It seems that gnu libc does not folloe c99 standard
I have gcc 6.3.0, gnu libc 2.24, my host is a linux ubuntu 17.04 64bit
[Edited]
if I compile this:
printf("%Ld\n",3);
printf("%lld\n", 3LL);
printf("%Lf\n", 3.3L);
printf("%llf\n", 3.3L);
printf("%f\n", 3.3L);
I get:
warning: format ‘%Ld’ expects argument of type ‘long long int’, but argument 2 has type ‘int’ [-Wformat=]
printf("%Ld\n",3);
^
warning: use of ‘ll’ length modifier with ‘f’ type character has either no effect or undefined behavior [-Wformat=]
printf("%llf\n", 3.3L);
^
warning: format ‘%f’ expects argument of type ‘double’, but argument 2 has type ‘long double’ [-Wformat=]
printf("%f\n", 3.3L);
^
So the expected warning message is like for %llf.
with -pedantic I get more verbose messages:
warning: ISO C does not support the ‘%Ld’ gnu_printf format [-Wformat=]
printf("%Ld\n",3);
^
warning: format ‘%Ld’ expects argument of type ‘long long int’, but argument 2 has type ‘int’ [-Wformat=]
warning: use of ‘ll’ length modifier with ‘f’ type character has either no effect or undefined behavior [-Wformat=]
printf("%llf\n", 3.3L);
^
warning: format ‘%f’ expects argument of type ‘double’, but argument 2 has type ‘long double’ [-Wformat=]
printf("%f\n", 3.3L);
^
[Edited]
I have a mail from gcc ML
it looks that '%Ld' is allowed and require
‘long long int’.
But it is allowed by GNU libc, that's the point. For GNU libc %Ld
means the same as %lld, but that's non-standard, so when you use
-pedantic you get a warning.
And this explain the warning message.
The standard says:
If a length modifier appears with any conversion specifier other than as specified above, the behavior is undefined.
In this case, the L length modifier is not specified for use with the d conversion specifier, so the behavior is undefined.
Presumably gcc (this is gcc giving you the warning, not libc) is using the same internal flag for long doubles and long long ints. It would be nice if the warning were more precise, but it isn't required to give you any warning at all (or to do anything else in particular), so it's following the standard correctly.
Related
I'm trying to install RMagick 2.15.4 on RHEL 6.7 using Ruby 2.0.0 and ImageMagick 7.0.2.
I've installed ImageMagick7, ImageMagick7-c++, ImageMagick7-c++-devel, ImageMagick7-devel, ImageMagick7-libs packages, made a symlinks:
ln -s /usr/include/ImageMagick-7/MagickCore/ /usr/include/ImageMagick-7/magick
ln -s /usr/include/ImageMagick-7/MagickWand/ /usr/include/ImageMagick-7/wand
And launched install:
C_INCLUDE_PATH=/usr/include/ImageMagick-7/ gem install rmagick
But got this errors:
======================================================================
Thu 16Jun16 05:08:41
This installation of RMagick 2.15.4 is configured for
Ruby 2.0.0 (x86_64-linux) and ImageMagick 7.0.2
======================================================================
Configured compile options: {:magick_config=>false, :pkg_config=>true, :magick_version=>"7.0.2", :local_libs=>" -lMagickCore-7.Q16HDRI ", :cflags=>" -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/ImageMagick-7 ", :cppflags=>" -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/ImageMagick-7 ", :ldflags=>" -lMagickCore-7.Q16HDRI ", :defs=>[], :config_h=>"Makefile rmagick.h"}
make "DESTDIR="
compiling rmmontage.c
In file included from rmmontage.c:14:
rmagick.h:1210: error: expected declaration specifiers or ‘...’ before ‘MagickPixelPacket’
rmagick.h:1219: warning: parameter names (without types) in function declaration
rmagick.h:1224: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
rmagick.h:1240: warning: parameter names (without types) in function declaration
rmagick.h:1253: warning: parameter names (without types) in function declaration
rmagick.h:1289: error: expected declaration specifiers or ‘...’ before ‘MagickPixelPacket’
rmmontage.c: In function ‘Montage_background_color_eq’:
rmmontage.c:110: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
rmmontage.c: In function ‘Montage_border_color_eq’:
rmmontage.c:131: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
rmmontage.c: In function ‘Montage_fill_eq’:
rmmontage.c:215: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
rmmontage.c: In function ‘Montage_matte_color_eq’:
rmmontage.c:353: error: ‘MontageInfo’ has no member named ‘matte_color’
rmmontage.c: In function ‘Montage_stroke_eq’:
rmmontage.c:416: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
make: *** [rmmontage.o] Error 1
I checked all developer dependencies on https://rubygems.org/gems/rmagick/versions/2.15.4, and they was satisfied.
How to fix this?
Thanks.
since some weeks, I'm working with a new Mac which works with OS X Yosemite (Version 10.10.3). I figured out a lot of trouble installing programs from source, why I already changed the compiler to, e.g., gcc 4.2, 4.7, and 4.9. Furthermore, I "removed" the connection to clang, but also this produces still errors during compiling. However, doing the same on a Mac OS X machine version 10.7.5 works fine. There, gcc version 4.2.1 is running.
Here's an example error message, I get typing make in the command line:
cc -O2 -c -o swat.o swat.c
In file included from swat.c:25:
./swat.h:85:35: warning: '/*' within block comment [-Wcomment]
/* int *maxstu_vec; NOT NEEDED /* array of length length + 1, used to hold row of scores,
^
swat.c:29:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
compare_scores(entry1, entry2)
^
swat.c:35:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
compare_z_scores(entry1, entry2)
^
swat.c:42:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
compare_E_values(entry1, entry2)
^
swat.c:49:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
main(argc,argv)
^
swat.c:75:3: warning: implicit declaration of function 'get_parameters' is invalid in C99 [-Wimplicit-function-declaration]
get_parameters(argc, argv, "swat");
^
swat.c:85:3: warning: implicit declaration of function 'alloc_hist' is invalid in C99 [-Wimplicit-function-declaration]
alloc_hist();
^
swat.c:86:10: warning: implicit declaration of function 'get_next_file_entry' is invalid in C99 [-Wimplicit-function-declaration]
while (get_next_file_entry(qdb)) {
^
swat.c:95:5: warning: implicit declaration of function 'notify' is invalid in C99 [-Wimplicit-function-declaration]
notify("Searching: ");
^
swat.c:98:12: warning: implicit declaration of function 'append_seq_entry' is invalid in C99 [-Wimplicit-function-declaration]
s_entry = append_seq_entry(sdb);
^
swat.c:110:2: warning: implicit declaration of function 'set_score' is invalid in C99 [-Wimplicit-function-declaration]
set_score(s_entry, score);
^
swat.c:127:57: warning: implicit declaration of function 'get_seq_length' is invalid in C99 [-Wimplicit-function-declaration]
score = parameters->align(q_profile, get_seq(s_entry), get_seq_length(s_entry), 1, 0, 0, 0, 0, 0);
^
swat.c:146:5: warning: implicit declaration of function 'initialize_hist' is invalid in C99 [-Wimplicit-function-declaration]
initialize_hist();
^
swat.c:155:7: warning: implicit declaration of function 'update_hist' is invalid in C99 [-Wimplicit-function-declaration]
update_hist(score_entry, 0);
^
swat.c:158:5: warning: implicit declaration of function 'process_hist' is invalid in C99 [-Wimplicit-function-declaration]
process_hist();
^
swat.c:172:2: warning: implicit declaration of function 'fit_log_n' is invalid in C99 [-Wimplicit-function-declaration]
fit_log_n(q_length);
^
swat.c:175:4: warning: implicit declaration of function 'find_z' is invalid in C99 [-Wimplicit-function-declaration]
find_z(score_entry);
^
swat.c:195:9: warning: implicit declaration of function 'reject_entry' is invalid in C99 [-Wimplicit-function-declaration]
if (!reject_entry(score_entry)) nz++; /* assumes Smith-Waterman */
^
swat.c:202:7: warning: implicit declaration of function 'new_est_lambda_K' is invalid in C99 [-Wimplicit-function-declaration]
new_est_lambda_K(q_length, score_entries, last_score_entry);
^
swat.c:242:24: warning: '&&' within '||' [-Wlogical-op-parentheses]
if (parameters->use_n && score_entry >= score_entries + parameters->max_num_alignments
~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
swat.c:242:24: note: place parentheses around the '&&' expression to silence this warning
if (parameters->use_n && score_entry >= score_entries + parameters->max_num_alignments
^
( )
swat.c:243:24: warning: '&&' within '||' [-Wlogical-op-parentheses]
|| parameters->use_z && score_entry->z < parameters->z_cutoff || !score_entry->score)
~~ ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
swat.c:243:24: note: place parentheses around the '&&' expression to silence this warning
|| parameters->use_z && score_entry->z < parameters->z_cutoff || !score_entry->score)
^
( )
swat.c:256:29: warning: data argument not used by format string [-Wformat-extra-args]
score_entry->score, score_entry->z, e_value, score_entry->E);
^
swat.c:261:2: warning: implicit declaration of function 'print_alignment' is invalid in C99 [-Wimplicit-function-declaration]
print_alignment(q_profile);
^
swat.c:266:65: warning: data argument not used by format string [-Wformat-extra-args]
get_id(seq_num), get_seq_length(seq_num), score_entry->score, score_entry->z);
^
swat.c:272:5: warning: implicit declaration of function 'free_profile' is invalid in C99 [-Wimplicit-function-declaration]
free_profile(q_profile);
^
25 warnings generated.
cc -O2 -c -o weibull.o weibull.c
In file included from weibull.c:25:
./swat.h:85:35: warning: '/*' within block comment [-Wcomment]
/* int *maxstu_vec; NOT NEEDED /* array of length length + 1, used to hold row of scores,
^
weibull.c:47:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
reject_entry(score_entry)
^
weibull.c:50:32: warning: '&&' within '||' [-Wlogical-op-parentheses]
return (!parameters->nw_flag && !score_entry->score || score_entry->length < LENGTH_CUTOFF);
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ~~
weibull.c:50:32: note: place parentheses around the '&&' expression to silence this warning
return (!parameters->nw_flag && !score_entry->score || score_entry->length < LENGTH_CUTOFF);
^
( )
weibull.c:53:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
alloc_hist()
^
weibull.c:65:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
weibull.c:67:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
initialize_hist()
^
weibull.c:78:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
weibull.c:80:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
update_hist(score_entry, z_flag)
^
weibull.c:88:5: error: non-void function 'update_hist' should return a value [-Wreturn-type]
return;
^
weibull.c:92:5: error: non-void function 'update_hist' should return a value [-Wreturn-type]
return;
^
weibull.c:106:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
prune_hist(score_entry)
^
weibull.c:111:34: error: non-void function 'prune_hist' should return a value [-Wreturn-type]
if (reject_entry(score_entry)) return;
^
weibull.c:127:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
process_hist()
^
weibull.c:155:5: warning: implicit declaration of function 'fatalError' is invalid in C99 [-Wimplicit-function-declaration]
fatalError("No entries have scores exceeding -gap_init");
^
weibull.c:168:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
fit_log_n(q_length)
^
weibull.c:300:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
est_lambda_K(q_length)
^
weibull.c:399:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
new_est_lambda_K(q_length, score_entries, last_score_entry) /* using non-extreme-value dist'n */
^
weibull.c:644:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
find_z(entry)
^
weibull.c:652:21: warning: implicit declaration of function 'make_log_table' is invalid in C99 [-Wimplicit-function-declaration]
if (!log_table) make_log_table();
^
weibull.c:665:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
make_log_table()
^
17 warnings and 3 errors generated.
make: *** [weibull.o] Error 1
Maybe someone of you has any idea, what the problem could be???
I would be very glad for every answer :)
weibull.c:88:5: error: non-void function 'update_hist' should return a value [-Wreturn-type]
return;
^
weibull.c:92:5: error: non-void function 'update_hist' should return a value [-Wreturn-type]
return;
^
and
weibull.c:111:34: error: non-void function 'prune_hist' should return a value [-Wreturn-type]
if (reject_entry(score_entry)) return;
^
must return a vaule of type in given function's header.
I found a solution. The problem was, as I already feared, the compiler.
I installed a relatively new version (gcc 4.9), set this version as active and added the path in ~/.bash_profile (that was the most important step). Furthermore, I adopted the makefile. Opening a new terminal and typing "make" runs without errors.
I am trying to install the "regiviewer" application.
As far as Im aware I have installed all the required dependencies.
As I go to ./configure the package, it completes this, returning no error and prompts me to 'make' (compile the package).
Upon doing so I get the following errors outputted:
make[2]: *** [ntreg.o] Error 1
make[2]: Leaving directory `/usr/local/src/regviewer-0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/regviewer-0.1'
make: *** [all] Error 2
I do not know what this means or how to rectify this. (fairly new to Linux)
Any help would be much appreciated :)
The full output is shown below:
/usr/local/src/regviewer-0.1$ make
make all-recursive
make[1]: Entering directory `/usr/local/src/regviewer-0.1'
Making all in src
make[2]: Entering directory `/usr/local/src/regviewer-0.1/src'
gcc -DHAVE_CONFIG_H -I. -I..
-DPACKAGE_DATA_DIR=\""/usr/local/share"\"
-DPACKAGE_LOCALE_DIR=\""/usr/local//locale"\"
-pthread -DORBIT2=1 -D_REENTRANT -I/usr /include/libgnomeui-2.0
-I/usr/include /libart-2.0 -I/usr/include/gconf/2
-I/usr/include/gnome-keyring-1 -I/usr /include/libgnome-2.0
-I/usr/include /libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0
-I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0
-I/usr/lib/x86_64-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0
-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0
-I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0
-I/usr/include/libxml2
-I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2
-I/usr/include/atk-1.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include
-I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1
-I/usr/include/libpng12 -g -O2 -MT ntreg.o -MD -MP -MF .deps/ntreg.Tpo -c
-o ntreg.o ntreg.c
ntreg.c: In function ‘parse_nk’:
ntreg.c:378:29: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:379:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:380:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:381:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:382:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:383:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:384:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:385:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:386:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:387:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:388:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:389:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:391:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_vk’:
ntreg.c:410:31: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:412:31: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:413:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:415:18: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:417:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:418:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:420:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_sk’:
ntreg.c:438:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:439:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:440:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:442:46: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:444:46: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_lf’:
ntreg.c:462:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:471:12: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_lh’:
ntreg.c:490:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:496:12: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_li’:
ntreg.c:517:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:522:5: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘nk_ls’:
ntreg.c:1326:7: warning: field width specifier ‘*’ expects argument of type ‘int’,
but argument 2 has type ‘size_t’ [-Wformat]
ntreg.c: In function ‘put_dword’:
ntreg.c:1999:17: error: lvalue required as left operand of assignment
ntreg.c: In function ‘fmyinput’:
ntreg.c:69:9: warning: ignoring return value of ‘fgets’, declared with
attribute warn_unused_result [-Wunused-result]
make[2]: *** [ntreg.o] Error 1
make[2]: Leaving directory `/usr/local/src/regviewer-0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/regviewer-0.1'
make: *** [all] Error 2
The ntreg.c file: lines 1989 - 2000
/* And, yer basic DWORD write */
int put_dword(struct hive *hdesc, int vofs, char *path, int dword)
{
struct keyval *kr;
int r;
ALLOC(kr,1,sizeof(int)+sizeof(int));
kr->len = sizeof(int);
(int)kr->data = dword;
r = put_buf2val(hdesc, kr, vofs, path, REG_DWORD);
FREE(kr);
return(r);
}
/* ================================================================ */
The error on the line in question appears to have been corrected in the upstream source between the date in 2003 that the 0.1 release was cut and the date in 2009 that the latest change was made in the CVS repo. I have no idea if the CVS code will ultimately work better or if the project, once compiled, will work at all correctly but that updated code base is likely a better place to start trying to work from.
I tried to install Sphinx on MacOSX snow leopard 10.6.4. The steps I followed are:
./configure --prefix=/usr/local --with-mysql=/usr/local/mysql
make
sudo make install
While 'make', I get the following errors:
Making all in src
if test -d ../.svn; then svn info .. --xml | perl svnxrev.pl; fi;
make all-am
g++ -DHAVE_CONFIG_H -I. -I../config -DSYSCONFDIR="\"/usr/local/etc\"" -I/usr/local/include -I/usr/local/mysql/include -Os -g -fno-common -fno-strict-aliasing -arch i386 -Wall -g -D_FILE_OFFSET_BITS=64 -O3 -DNDEBUG -MT sphinx.o -MD -MP -MF .deps/sphinx.Tpo -c -o sphinx.o sphinx.cpp
In file included from /usr/include/sql.h:92,
from /usr/include/sqlext.h:82,
from sphinx.h:69,
from sphinx.cpp:14:
/usr/include/iodbcunix.h:128: error: conflicting declaration ‘typedef unsigned int DWORD’
sphinxstd.h:90: error: ‘DWORD’ has a previous declaration as ‘typedef long unsigned int DWORD’
sphinx.cpp: In function ‘char* sphStrMacro(const char*, const char*, SphDocID_t)’:
sphinx.cpp:1912: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘SphDocID_t’
sphinx.cpp: In function ‘CSphString sphDumpAttr(const CSphColumnInfo&)’:
sphinx.cpp:4784: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
sphinx.cpp: In member function ‘virtual void CSphIndex_VLN::DebugDumpHeader(FILE*, const char*)’:
sphinx.cpp:14563: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘DWORD’
sphinx.cpp:14592: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’
sphinx.cpp:14631: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘DWORD’
sphinx.cpp: In member function ‘virtual void CSphIndex_VLN::DebugDumpDocids(FILE*)’:
sphinx.cpp:14647: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’
sphinx.cpp:14648: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘DWORD’
sphinx.cpp:14655: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘long unsigned int’
sphinx.cpp:14655: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘SphDocID_t’
sphinx.cpp: In member function ‘virtual void CSphIndex_VLN::DebugDumpHitlist(FILE*, const char*)’:
sphinx.cpp:14710: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘SphDocID_t’
sphinx.cpp:14710: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 4 has type ‘DWORD’
sphinx.cpp: In member function ‘bool CSphSource_SQL::RunQueryStep(const char*, CSphString&)’:
sphinx.cpp:18346: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘SphDocID_t’
sphinx.cpp:18347: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘SphDocID_t’
sphinx.cpp: In member function ‘const char* CSphSource_XMLPipe2::DecorateMessageVA(const char*, char*)’:
sphinx.cpp:20238: warning: format ‘%u’ expects type ‘unsigned int’, but argument 6 has type ‘SphDocID_t’
sphinx.cpp: In member function ‘virtual bool CSphSource_ODBC::SqlQuery(const char*)’:
sphinx.cpp:21288: warning: comparison between signed and unsigned integer expressions
sphinx.cpp: At global scope:
sphinx.cpp:1741: warning: ‘g_tmInitTimer’ defined but not used
make[2]: *** [sphinx.o] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
I checked the directory of MySQL is correct.
I found the following suggestions helpful:
1. add the following parameter to configure:
--with-unixodbc=no
if you still get errors, try setting LDFLAGS to '-arch i386'
Mac OS X binaries are available for 2.0.1b from http://sphinxsearch.com/downloads/
I'm trying to learn Ruby on Rails and wanted to follow Apple's example:
http://developer.apple.com/tools/developonrailsleopard.html
It requires Ruby 1.8.6 and Rails 2.0.2
My machines is already updated to 1.9.1. I wanted to use rvm to install 1.8.6 but it failed during make with the following log:
[2010-10-20 10:43:31] make
eval.c: In function ‘rb_eval_string_wrap’:
eval.c:1743: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘rb_eval_cmd’:
eval.c:1884: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘call_trace_func’:
eval.c:2735: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘rb_raise_jump’:
eval.c:4760: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘method_missing’:
eval.c:5684: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘rb_call0’:
eval.c:5847: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘rb_f_eval’:
eval.c:6634: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘exec_under’:
eval.c:6658: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘rb_load’:
eval.c:6894: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘call_end_proc’:
eval.c:7924: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘rb_f_END’:
eval.c:7937: warning: assignment discards qualifiers from pointer target type
eval.c: In function ‘mproc’:
eval.c:9557: warning: assignment discards qualifiers from pointer target type
file.c: In function ‘lchmod_internal’:
file.c:1787: warning: cast from pointer to integer of different size
gc.c: In function ‘obj_free’:
gc.c:1287: warning: initialization from incompatible pointer type
regex.c: In function ‘ruby_re_compile_pattern’:
regex.c:1362: warning: format ‘%d’ expects type ‘int’, but argument 7 has type ‘long int’
regex.c:2026: warning: format ‘%d’ expects type ‘int’, but argument 6 has type ‘long int’
ptr.c: In function ‘rb_dlptr_inspect’:
ptr.c:461: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 7 has type ‘struct ptr_data *’
ptr.c:461: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 8 has type ‘void *’
void
char
short
int
long
float
double
sym.c: In function ‘rb_dlsym_inspect’:
sym.c:270: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 6 has type ‘struct sym_data *’
sym.c:270: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 7 has type ‘void *’
ossl_asn1.c: In function ‘decode_bool’:
ossl_asn1.c:313: warning: passing argument 2 of ‘d2i_ASN1_BOOLEAN’ from incompatible pointer type
ossl_asn1.c: In function ‘decode_int’:
ossl_asn1.c:328: warning: passing argument 2 of ‘d2i_ASN1_INTEGER’ from incompatible pointer type
ossl_asn1.c: In function ‘decode_bstr’:
ossl_asn1.c:347: warning: passing argument 2 of ‘d2i_ASN1_BIT_STRING’ from incompatible pointer type
ossl_asn1.c: In function ‘decode_enum’:
ossl_asn1.c:373: warning: passing argument 2 of ‘d2i_ASN1_ENUMERATED’ from incompatible pointer type
ossl_asn1.c: In function ‘decode_null’:
ossl_asn1.c:390: warning: passing argument 2 of ‘d2i_ASN1_NULL’ from incompatible pointer type
ossl_asn1.c: In function ‘decode_obj’:
ossl_asn1.c:407: warning: passing argument 2 of ‘d2i_ASN1_OBJECT’ from incompatible pointer type
ossl_asn1.c: In function ‘decode_time’:
ossl_asn1.c:435: warning: passing argument 2 of ‘d2i_ASN1_TIME’ from incompatible pointer type
ossl_asn1.c: In function ‘ossl_asn1_get_asn1type’:
ossl_asn1.c:503: warning: cast to pointer from integer of different size
ossl_asn1.c: In function ‘ossl_asn1_decode0’:
ossl_asn1.c:727: warning: passing argument 1 of ‘ASN1_get_object’ from incompatible pointer type
ossl_ns_spki.c: In function ‘ossl_spki_initialize’:
ossl_ns_spki.c:67: warning: passing argument 2 of ‘d2i_NETSCAPE_SPKI’ from incompatible pointer type
ossl_ocsp.c: In function ‘ossl_ocspreq_initialize’:
ossl_ocsp.c:114: warning: passing argument 2 of ‘d2i_OCSP_REQUEST’ from incompatible pointer type
ossl_ocsp.c: In function ‘ossl_ocspres_initialize’:
ossl_ocsp.c:321: warning: passing argument 2 of ‘d2i_OCSP_RESPONSE’ from incompatible pointer type
ossl_pkcs7.c: In function ‘ossl_pkcs7si_new’:
ossl_pkcs7.c:90: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
ossl_pkcs7.c: In function ‘DupPKCS7SignerPtr’:
ossl_pkcs7.c:103: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
ossl_pkcs7.c: In function ‘ossl_pkcs7ri_new’:
ossl_pkcs7.c:116: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
ossl_pkcs7.c: In function ‘DupPKCS7RecipientPtr’:
ossl_pkcs7.c:129: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
ossl_pkey_dsa.c: In function ‘ossl_dsa_initialize’:
ossl_pkey_dsa.c:141: warning: passing argument 1 of ‘PEM_ASN1_read_bio’ from incompatible pointer type
ossl_pkey_dsa.c:141: warning: passing argument 4 of ‘PEM_ASN1_read_bio’ from incompatible pointer type
ossl_pkey_dsa.c: In function ‘ossl_dsa_to_public_key’:
ossl_pkey_dsa.c:313: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
ossl_x509attr.c: In function ‘ossl_x509attr_initialize’:
ossl_x509attr.c:100: warning: passing argument 2 of ‘d2i_X509_ATTRIBUTE’ from incompatible pointer type
ossl_x509ext.c: In function ‘ossl_x509ext_initialize’:
ossl_x509ext.c:285: warning: passing argument 2 of ‘d2i_X509_EXTENSION’ from incompatible pointer type
ossl_x509name.c: In function ‘ossl_x509name_initialize’:
ossl_x509name.c:135: warning: passing argument 2 of ‘d2i_X509_NAME’ from incompatible pointer type
ossl_x509revoked.c: In function ‘ossl_x509revoked_new’:
ossl_x509revoked.c:48: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
ossl_x509revoked.c: In function ‘DupX509RevokedPtr’:
ossl_x509revoked.c:64: warning: passing argument 2 of ‘ASN1_dup’ from incompatible pointer type
readline.c: In function ‘username_completion_proc_call’:
readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:730: error: (Each undeclared identifier is reported only once
readline.c:730: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [all] Error 1
[2010-10-20 10:50:17] make
readline.c: In function ‘username_completion_proc_call’:
readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:730: error: (Each undeclared identifier is reported only once
readline.c:730: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [all] Error 1
[2010-10-20 11:48:12] make
readline.c: In function ‘username_completion_proc_call’:
readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:730: error: (Each undeclared identifier is reported only once
readline.c:730: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [all] Error 1
[2010-10-20 15:30:53] make
readline.c: In function ‘username_completion_proc_call’:
readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:730: error: (Each undeclared identifier is reported only once
readline.c:730: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [all] Error 1
[2010-10-20 17:19:27] make
readline.c: In function ‘username_completion_proc_call’:
readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:730: error: (Each undeclared identifier is reported only once
readline.c:730: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [all] Error 1
Can anyone help? I'm totally lost here…
That article i 2.5 years old. I wouldn't recommend following it. If you still wants to then you could try to rvm install Ruby 1.8.7. I've never heard of any compability issues between 1.8.6 and 1.8.7.
I would instead recommend that you follow Setting up a Rails Development System on Mac OSX Snow Leopard and from there the regular Getting Started with Rails.