From murdoch.duncan at gmail.com  Fri Nov 26 20:12:06 2010
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Fri, 26 Nov 2010 14:12:06 -0500
Subject: [Rd] R Tools & Vista_x64:  Problem compiling RMySQL?
In-Reply-To: <4CEFF731.2080605@structuremonitoring.com>
References: <4CEFF731.2080605@structuremonitoring.com>
Message-ID: <4CF00686.7080601@gmail.com>

On 26/11/2010 1:06 PM, Spencer Graves wrote:
> Hello:
>
>
> 	  What do I need to do to compile R packages (especially RMySQL) for
> the 64-bit version of R 2.12.0 under Vista_x64?

The symptoms you're seeing are because the linker can't functions in

libmySQL.dll

which it is looking for in the somewhat strange path

C:/PROGRA~2/MySQL/MYSQLS~1.1//bin/libmySQL.dll


Does that file exist?  Is it a 64 bit dll, compatible with MinGW?  Is it 
compiled under the same convention as R, where no underscores are used 
in external names?  (The latter two questions can probably be answered 
by looking at "objdump -x libmySQL.dll".  objdump.exe is distributed as 
part of the MinGW distribution in Rtools.)

Duncan Murdoch

>
> 	I upgraded to "Rtools212.exe" yesterday but immediately got errors
> from "R CMD check RMySQL_0.7-5.tar.gz".  After the first error, I
> installed it a second time, then got "undefined reference to" roughly 50
> different names beginning "mysql_";  copied below.  I see two possible
> sources for this problem:
>
>
> 		    (1) RTools212 may not be installed properly.
>
>
> 		    (2) RMySQL may be incompatible with R x64 2.12.0, especially with
> a 32-bit version of MySQL.
>
>
> 	  NOTE:  RMySQL worked with R2.11.1 (and MySQL 5.1.50-community server)
> before I installed R2.12.0.  I'm reasonably sure that my local
> installation of MySQL is only 32-bit.
>
>
> 	  What do you suggest?  I use the 32-bit version of R2.12.0?
>
>
> 	  Thanks,
> 	  Spencer
> #####################################
> * installing *source* package 'RMySQL' ...
> checking for $MYSQL_HOME... C:/PROGRA~2/MySQL/MYSQLS~1.1/
> cygwin warning:
>     MS-DOS style path detected: C:/PROGRA~2/MySQL/MYSQLS~1.1/
>     Preferred POSIX equivalent is: /cygdrive/c/PROGRA~2/MySQL/MYSQLS~1.1/
>     CYGWIN environment variable option "nodosfilewarning" turns off this
> warning.
>     Consult the user's guide for more details about POSIX paths:
>       http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
> ** libs
> Warning: this package has a non-empty 'configure.win' file,
> so building only the main architecture
>
> cygwin warning:
>     MS-DOS style path detected: C:/Users/sgraves/R/R-212~1.0/etc/x64/Makeconf
>     Preferred POSIX equivalent is:
> /cygdrive/c/Users/sgraves/R/R-212~1.0/etc/x64/Makeconf
>     CYGWIN environment variable option "nodosfilewarning" turns off this
> warning.
>     Consult the user's guide for more details about POSIX paths:
>       http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
> x86_64-w64-mingw32-gcc -I"C:/Users/sgraves/R/R-212~1.0/include"
> -I"C:/PROGRA~2/MySQL/MYSQLS~1.1/"/include        -O2 -Wall  -std=gnu99
> -c RS-DBI.c -o RS-DBI.o
> x86_64-w64-mingw32-gcc -I"C:/Users/sgraves/R/R-212~1.0/include"
> -I"C:/PROGRA~2/MySQL/MYSQLS~1.1/"/include        -O2 -Wall  -std=gnu99
> -c RS-MySQL.c -o RS-MySQL.o
> x86_64-w64-mingw32-gcc -shared -s -static-libgcc -o RMySQL.dll tmp.def
> RS-DBI.o RS-MySQL.o C:/PROGRA~2/MySQL/MYSQLS~1.1//bin/libmySQL.dll
> -LC:/Users/sgraves/R/R-212~1.0/bin/x64 -lR
> RS-MySQL.o:RS-MySQL.c:(.text+0xb0): undefined reference to
> `mysql_more_results'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2c6): undefined reference to `mysql_init'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2d9): undefined reference to `mysql_options'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2ef): undefined reference to `mysql_options'
> RS-MySQL.o:RS-MySQL.c:(.text+0x305): undefined reference to `mysql_options'
> RS-MySQL.o:RS-MySQL.c:(.text+0x338): undefined reference to
> `mysql_real_connect'
> RS-MySQL.o:RS-MySQL.c:(.text+0x399): undefined reference to `mysql_close'
> RS-MySQL.o:RS-MySQL.c:(.text+0x3d1): undefined reference to `mysql_error'
> RS-MySQL.o:RS-MySQL.c:(.text+0x7a2): undefined reference to `mysql_close'
> RS-MySQL.o:RS-MySQL.c:(.text+0x80f): undefined reference to
> `mysql_fetch_fields'
> RS-MySQL.o:RS-MySQL.c:(.text+0x823): undefined reference to
> `mysql_field_count'
> RS-MySQL.o:RS-MySQL.c:(.text+0xae7): undefined reference to
> `mysql_next_result'
> RS-MySQL.o:RS-MySQL.c:(.text+0xb0b): undefined reference to
> `mysql_use_result'
> RS-MySQL.o:RS-MySQL.c:(.text+0xb16): undefined reference to
> `mysql_field_count'
> RS-MySQL.o:RS-MySQL.c:(.text+0xbff): undefined reference to
> `mysql_affected_rows'
> RS-MySQL.o:RS-MySQL.c:(.text+0xd27): undefined reference to
> `mysql_fetch_row'
> RS-MySQL.o:RS-MySQL.c:(.text+0xd3d): undefined reference to
> `mysql_fetch_lengths'
> RS-MySQL.o:RS-MySQL.c:(.text+0xf2e): undefined reference to `mysql_errno'
> RS-MySQL.o:RS-MySQL.c:(.text+0x1093): undefined reference to `mysql_errno'
> RS-MySQL.o:RS-MySQL.c:(.text+0x109e): undefined reference to `mysql_error'
> RS-MySQL.o:RS-MySQL.c:(.text+0x1114): undefined reference to
> `mysql_fetch_row'
> RS-MySQL.o:RS-MySQL.c:(.text+0x1121): undefined reference to
> `mysql_free_result'
> RS-MySQL.o:RS-MySQL.c:(.text+0x11f0): undefined reference to `mysql_query'
> RS-MySQL.o:RS-MySQL.c:(.text+0x1200): undefined reference to
> `mysql_use_result'
> RS-MySQL.o:RS-MySQL.c:(.text+0x120b): undefined reference to
> `mysql_field_count'
> RS-MySQL.o:RS-MySQL.c:(.text+0x128f): undefined reference to `mysql_query'
> RS-MySQL.o:RS-MySQL.c:(.text+0x12ac): undefined reference to `mysql_error'
> RS-MySQL.o:RS-MySQL.c:(.text+0x133c): undefined reference to
> `mysql_affected_rows'
> RS-MySQL.o:RS-MySQL.c:(.text+0x1539): undefined reference to
> `mysql_get_client_info'
> RS-MySQL.o:RS-MySQL.c:(.text+0x172d): undefined reference to
> `mysql_get_host_info'
> RS-MySQL.o:RS-MySQL.c:(.text+0x174b): undefined reference to
> `mysql_get_server_info'
> RS-MySQL.o:RS-MySQL.c:(.text+0x176d): undefined reference to
> `mysql_get_proto_info'
> RS-MySQL.o:RS-MySQL.c:(.text+0x177c): undefined reference to
> `mysql_thread_id'
> RS-MySQL.o:RS-MySQL.c:(.text+0x23db): undefined reference to
> `mysql_fetch_row'
> RS-MySQL.o:RS-MySQL.c:(.text+0x23fd): undefined reference to `mysql_errno'
> RS-MySQL.o:RS-MySQL.c:(.text+0x252a): undefined reference to
> `mysql_fetch_lengths'
> RS-MySQL.o:RS-MySQL.c:(.text+0x28fd): undefined reference to
> `mysql_insert_id'
> RS-MySQL.o:RS-MySQL.c:(.text+0x29cd): undefined reference to
> `mysql_real_escape_string'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2a7a): undefined reference to
> `mysql_get_client_info'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2ab8): undefined reference to
> `mysql_get_client_version'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2afc): undefined reference to
> `mysql_server_init'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2b01): undefined reference to
> `mysql_get_client_version'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2b29): undefined reference to
> `mysql_get_client_info'
> RS-MySQL.o:RS-MySQL.c:(.text+0x2b69): undefined reference to
> `mysql_server_end'
> collect2: ld returned 1 exit status
> ERROR: compilation failed for package 'RMySQL'
> * removing 'C:/Users/sgraves/Rpkgs/RMySQL/RMySQL.Rcheck/RMySQL'
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] R Tools & Vista_x64: Problem compiling RMySQL?
Duncan Murdoch