[Rcpp-devel] violates the C++ One Definition Rule ?

Toby Hocking tdhock5 at gmail.com
Tue Jan 25 18:49:46 CET 2022


That worked! Thanks Dirk.

On Mon, Jan 24, 2022 at 1:14 PM Dirk Eddelbuettel <edd at debian.org> wrote:

>
> On 24 January 2022 at 12:55, Toby Hocking wrote:
> | Hi Rcpp Devs,
> | Does anyone know how to fix this warning in a package with LinkingTo:
> | RcppArmadillo? My package plotHMM
> | https://www.stats.ox.ac.uk/pub/bdr/LTO/plotHMM.out got this message on
> CRAN
>
> Worth stressing that this happens under link-time optimziation (lto) which
> I
> am not yet that familiar with.
>
> From _really briefly_ glancing at your package I see that you include
> RcppArmadillo.h in some files (good !) but also include armadillo
> directly. It's just a hunch and guess at this point but that may lead to
> different 'settings' and #define values.  Maybe try using only
> RcppArmadillo.h ?
>
> Dirk
>
> | Additional Checks LTO flavor,
> | https://www.stats.ox.ac.uk/pub/bdr/LTO/README.txt
> |
> | g++ -std=gnu++14 -shared -L/usr/local/lib64 -o plotHMM.so
> | RcppExports.o backward.o eln.o forward.o interface.o multiply.o
> | pairwise.o transition.o viterbi.o
> |
> /data/gannet/ripley/R/test-4.2/RcppArmadillo/include/armadillo_bits/glue_solve_bones.hpp:84:10:
> | warning: type ‘struct opts’ violates the C++ One Definition Rule
> | [-Wodr]
> |    84 |   struct opts
> |       |          ^
> |
> /data/gannet/ripley/R/test-4.2/RcppArmadillo/include/armadillo_bits/glue_solve_bones.hpp:84:10:
> | note: a different type is defined in another translation unit
> |    84 |   struct opts
> |       |          ^
> |
> /data/gannet/ripley/R/test-4.2/RcppArmadillo/include/armadillo_bits/glue_solve_bones.hpp:86:17:
> | note: the first difference of corresponding definitions is field
> | ‘flags’
> |    86 |     const uword flags;
> |       |                 ^
> |
> /data/gannet/ripley/R/test-4.2/RcppArmadillo/include/armadillo_bits/glue_solve_bones.hpp:86:17:
> | note: a field of same name but different type is defined in another
> | translation unit
> |    86 |     const uword flags;
> |       |                 ^
> | _______________________________________________
> | 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
> --
> https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20220125/621efb57/attachment.html>


More information about the Rcpp-devel mailing list