On 23 September 2014 at 12:14, Kumar Aiyer wrote: | Hi John: | Thanks for the info. I have not checked if it works in vanilla MingW. Doing | that today. However here is the summary from the user guide which clearly | states it has been tested. The problem may be with the 64bit libraries. ^^^^^^^^^^^^^^^^^^^^^^^^^^
In the context of the SSC library, maybe. Note that the example below uses C language code (and there is a reason) But what you are overlooking is that in general you CANNOT mix code from Visual Studio and MinGW for purposes of Rcpp -- and in general you CANNOT mix C++ code from different compilers. So unless you get the source code for SSC and learn how to build an Rcpp package __from sources__ ie without an external library you will be out of luck. This is all stated in the Rcpp-FAQ. Dirk | | 2.7 Compile and run the C program | This description explains how to compile and run the C program in Windows using | the | MinGW development environment, assuming we saved the code to the file | example1_pvwatts.c. | This example was tested with MinGW gcc version 4.6.2. | To compile and run the program, the following files must be in the same folder: | • The .c file containing the program code | • The sscapi.h header file | • The dynamic library file, for example ssc32.dll | • The daggett.tm2 weather file | To compile the program, type the following command at the Windows command | prompt: | c:\> gcc example1_pvwatts.c ssc32.dll -o pvwatts.exe | To run the program, specify a weather file on the command line. Here, we use the | TMY2 | file for Daggett, California: | c:\> pvwatts.exe daggett.tm2 | ac: 1668.23 kWh | | best | | Kumar Aiyer | | | On Monday, September 22, 2014 8:16 PM, Kumar Aiyer <kumar_n...@yahoo.com> | wrote: | | | I am developing a module RcppSSC which is an R wrapper for a C library for | Solar Energy from NREL. | | | | I am using RStudio to build and install the package for debugging. | | Build session output shows that debug flags are enabled | ============================================ | | ==> Rcmd.exe INSTALL --preclean --no-multiarch --with-keep.source RcppSSC | | * installing to library 'C:/Users/kumar_000/Documents/R/win-library/3.1' | * installing *source* package 'RcppSSC' ... | ** libs | g++ -m64 -I"C:/PROGRA~1/R/R-31~1.1/include" -DNDEBUG -I. -I"C:/SAM/ | ssc-sdk-2014-1-21" -I"C:/Users/kumar_000/Documents/R/win-library/3.1/Rcpp/ | include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -g -O3 -Wall | -pipe -pedantic -Wno-variadic-macros -c RcppSSC.cpp -o RcppSSC.o | g++ -m64 -shared -s -static-libgcc -o RcppSSC.dll tmp.def RcppSSC.o -LC:/SAM/ | ssc-sdk-2014-1-21/win64/ -lssc -Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64 | -Ld:/RCompile/CRANpkg/extralibs64/local/lib -LC:/PROGRA~1/R/R-31~1.1/bin/x64 | -lR | installing to C:/Users/kumar_000/Documents/R/win-library/3.1/RcppSSC/libs/x64 | | ============================================= | Running the code in Rstudio | ============================================= | test_script.r | ========== | require(Rcpp) | require(RcppSSC) | | ssc_module <- Module( "RcppSSC","RcppSSC") | ssc <- ssc_module$RcppSSC | s <- new( ssc, "pvwattsv1" ) | RStudio crashes "R Session Aborted. R encountered a fatal error. The session | was terminated" | | ============================================= | | Running the code in gdb | | I used the steps outlines in the following web page and face the same issues. | Cannot get symbolic debug information in gdb or the correct source file | | I used the following steps | | 1) set DEBUG=T | 2) C:\Rtools\gcc-4.6.3\bin64\gdb.exe rgui | | 3) type cont in gdb | 4) load the script test_script.r in the R session | 4) Execute the R code until the line s <- new( ssc, "pvwattsv1" ) | in the R | 5) At this stage code runs fine. | 6) I checked the object ssc created in R. | 7) Results are as follows | | > ssc | C++ class 'RcppSSC' <00000000076FD250> | Constructors: | RcppSSC(std::string) | docstring : constructor with module name | | 8) Next I set a breakpoint in gdb in the function init which is called from the | public constructor. I do this by choosing "Misc -> break to debuger" from the | menu in RGui | 9) I then execute "break init" in gdb | 10) I get the following output which makes me to believe that no symbolic | information was read in. NEED HELP ON THIS? Why is this happening despite | compiling with the -g flag | | Program received signal SIGTRAP, Trace/breakpoint trap. | 0x000000006c714b01 in R_gl_tab_set () | from C:\Program Files\R\R-3.1.1\bin\x64\R.dll | (gdb) break init | Function "init" not defined. | Make breakpoint pending on future shared library load? (y or [n]) y | | Breakpoint 1 (init) pending. | (gdb) | | 11) Next type cont in gdb and get back to RGui | 12) In RGui execute the line | s <- new( ssc, "pvwattsv1" ) | | 13) In gdb, I get | (gdb) cont | Continuing. | | Program received signal SIGSEGV, Segmentation fault. | 0x000000006b4c2508 in _rcpp_module_boot_RcppSSC () | from C:\Users\kumar_000\Documents\R\win-library\3.1\RcppSSC\libs\x64\ | RcppSSC. | dll | (gdb) | | So, no symbolic tables and no way to see which line of code SEGVs. Need help. | | | | | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel