[Rcpp-devel] R very basic compilation error

Bharath Govindarajan bharath.quant at gmail.com
Thu Feb 14 09:02:38 CET 2013


Hi Kevin,

Great! . Problem fixed now. Thanks a lot.

Regards
Bharath


On Thu, Feb 14, 2013 at 2:33 AM, Kevin Ushey <kevinushey at gmail.com> wrote:

> Could it be because the file extension is .c rather than the expected
> .cpp? Compiling the code runs fine for me when the file extension is .cpp,
> but I get the same errors as you with the file extension as .c .
>
> -Kevin
>
> On Wed, Feb 13, 2013 at 11:15 PM, Bharath Govindarajan <
> bharath.quant at gmail.com> wrote:
>
>> Hi,
>>
>> At the outset I would like to thank the developers of rcpp for this
>> wonderful tool. My question
>> is elementary but I am posting it here only because on stack exchange I
>> see Dirk suggesting that
>> this is a better place to get replies.
>>
>> Thanks again
>> Bharath
>>
>>
>>
>> Places I searched so far :
>> -------------------------------------
>> google , stack exchange :
>> " rcpp compilation error __attribute__ "
>> " rcpp Reference.h:25 error"
>> " rcpp asm error"
>>
>>
>>
>> > version
>>                _
>> platform       x86_64-unknown-linux-gnu
>> arch           x86_64
>> os             linux-gnu
>> system         x86_64, linux-gnu
>> status
>> major          2
>> minor          15.1
>> year           2012
>> month          06
>> day            22
>> svn rev        59600
>> language       R
>> version.string R version 2.15.1 (2012-06-22)
>> nickname       Roasted Marshmallows
>>
>> Description of problem:
>> --------------------------------
>> I tried a very simple example from Hadley Wickham's website and it worked
>> https://github.com/hadley/devtools/wiki/Rcpp
>>
>> cppFunction('
>>   double sumC(NumericVector x) {
>>     int n = x.size();
>>     double total = 0;
>>     for(int i = 0; i < n; ++i) {
>>       total += x[i];
>>     }
>>     return total;
>>   }
>> ')
>>
>> Then I try an example written in a c source file from
>> http://dirk.eddelbuettel.com/blog/2012/11/14/
>>  and source it and get compilation errors
>>
>> test1.c
>> ------
>> #include <Rcpp.h>
>>
>> // [[Rcpp::export]]
>> Rcpp::DataFrame mypnorm(Rcpp::NumericVector x) {
>>     int n = x.size();
>>     Rcpp::NumericVector y1(n), y2(n), y3(n);
>>
>>     for (int i=0; i<n; i++) {
>>
>>         // the way we used to do this
>>         y1[i] = ::Rf_pnorm5(x[i], 0.0, 1.0, 1, 0);
>>
>>         // the way we can do it now
>>         y2[i] = R::pnorm(x[i], 0.0, 1.0, 1, 0);
>>
>>     }
>>     // or using Rcpp sugar in one go
>>     y3 = Rcpp::pnorm(x);
>>
>>     return Rcpp::DataFrame::create(Rcpp::Named("Rold")  = y1,
>>                                    Rcpp::Named("Rnew")  = y2,
>>                                    Rcpp::Named("sugar") = y3);
>> }
>>
>> commands:
>> ---------
>> sourceCpp(LIB.PATH %+% "test1.c",verbose=TRUE)
>>
>> Error:
>> ------
>>
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/internal/wrap_end.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> In file included from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/meat.h:25,
>>                  from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp.h:81,
>>                  from test1.c:1:
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/RObject.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> In file included from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/meat.h:26,
>>                  from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp.h:81,
>>                  from test1.c:1:
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/Environment.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> In file included from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/meat.h:27,
>>                  from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp.h:81,
>>                  from test1.c:1:
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/DottedPair.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> In file included from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/meat.h:28,
>>                  from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp.h:81,
>>                  from test1.c:1:
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/Vector.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> In file included from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/meat.h:29,
>>                  from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp.h:81,
>>                  from test1.c:1:
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/Matrix.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> In file included from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/meat.h:30,
>>                  from
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp.h:81,
>>                  from test1.c:1:
>> R/x86_64-unknown-linux-gnu-library/2.15/Rcpp/include/Rcpp/api/meat/Reference.h:25:
>> error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Rcpp'
>> test1.c:4: error: expected '=', ',', ';', 'asm' or '__attribute__' before
>> ':' token
>> test1.c:28: error: expected identifier or '(' before string constant
>> make: *** [test1.o] Error 1
>> Error in sourceCpp(LIB.PATH %+% "test1.c", verbose = TRUE) :
>>   Error 1 occurred building shared library.
>>
>>
>>
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130214/0410a8f5/attachment.html>


More information about the Rcpp-devel mailing list