Rstudio update cause Rcpp fail to compile - c++

I recently updated my Rstudio to V2022.07.2+576, but found Rcpp can no longer compile code.
library(Rcpp)
cppFunction('int add(int x, int y, int z) {
int sum = x + y + z;
return sum;
}')
, which give me error message like:
clang-12: warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
In file included from file7898532e8a3d.cpp:1:
In file included from /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/Rcpp/include/Rcpp.h:27:
In file included from /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/Rcpp/include/RcppCommon.h:30:
In file included from /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/Rcpp/include/Rcpp/r/headers.h:62:
/Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/Rcpp/include/Rcpp/platform/compiler.h:100:10: fatal error: 'cmath' file not found
#include <cmath>
^~~~~~~
1 error generated.
make: *** [/Library/Frameworks/R.framework/Resources/etc/Makeconf:176: file7898532e8a3d.o] Error 1
clang++ -arch arm64 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/Rcpp/include" -I"/private/var/folders/0l/_zb89yxd4qs6g7t3dx2t__k80000gr/T/RtmpPHmvlY/sourceCpp-aarch64-apple-darwin20-1.0.9" -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c file7898532e8a3d.cpp -o file7898532e8a3d.o
Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir, :
Error 1 occurred building shared library.
I tried to reinstall R/Rstudio, and update Xcode, but had no good luck. Here is my sessioninfo
R version 4.2.2 (2022-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Big Sur 11.4
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods base
other attached packages:
[1] Rcpp_1.0.9 MASS_7.3-58.1 doParallel_1.0.17 iterators_1.0.14 foreach_1.5.2
loaded via a namespace (and not attached):
[1] xfun_0.31 tidyselect_1.1.2 purrr_0.3.4 splines_4.2.2 operator.tools_1.6.3
[6] lattice_0.20-45 vctrs_0.4.1 generics_0.1.3 htmltools_0.5.3 GWASExactHW_1.01
[11] stats4_4.2.2 yaml_2.3.5 mgcv_1.8-41 utf8_1.2.2 rlang_1.0.4
[16] pillar_1.8.0 glue_1.6.2 withr_2.5.0 DBI_1.1.3 BiocGenerics_0.42.0
[21] gdsfmt_1.32.0 GenomeInfoDbData_1.2.8 lifecycle_1.0.1 zlibbioc_1.42.0 Biostrings_2.64.0
[26] codetools_0.2-18 evaluate_0.15 Biobase_2.56.0 knitr_1.39 SeqArray_1.36.2
[31] IRanges_2.30.0 fastmap_1.1.0 GenomeInfoDb_1.32.2 fansi_1.0.3 broom_1.0.0
[36] backports_1.4.1 S4Vectors_0.34.0 XVector_0.36.0 digest_0.6.29 formula.tools_1.7.1
[41] dplyr_1.0.9 GenomicRanges_1.48.0 grid_4.2.2 cli_3.3.0 tools_4.2.2
[46] bitops_1.0-7 magrittr_2.0.3 RCurl_1.98-1.7 tibble_3.1.8 mice_3.14.0
[51] crayon_1.5.1 tidyr_1.2.0 pkgconfig_2.0.3 Matrix_1.5-1 data.table_1.14.2
[56] assertthat_0.2.1 rmarkdown_2.14 rstudioapi_0.13 logistf_1.24.1 R6_2.5.1
[61] SeqVarTools_1.34.0 nlme_3.1-160 compiler_4.2.2

Related

Stan model will not compile in R or Rstudio

I am having a strange problem that I have not encountered before while using R, Rstudio, or stan. I am not able to get any model to compile in stan. I am pretty confident it is not the models. trivial models in brms do not compile either. Whereas rstanarm models have no problem, being pre-compiled, as I understand. Likewise, similar models compile without problems on another computer. So, something is wrong with my configurations, but that stuff is above my understanding. I have tried the old delete everything and re-install trick to no avail. I am worried that I deleted something without realizing it while cleaning up files.
I am on a PC with windows 10 pro. I have R 4.0.4. Rstudio 1.4.1103.
Everytime I try to compile a stan model I get the following output:
make cmd is
make -f "C:/PROGRA~1/R/R-40~1.4/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-40~1.4/share/make/winshlib.mk" CXX='$(CXX14) $(CXX14STD)' CXXFLAGS='$(CXX14FLAGS)' CXXPICFLAGS='$(CXX14PICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX14LDFLAGS)' SHLIB_LD='$(SHLIB_CXX14LD)' SHLIB="file735032f41a17.dll" WIN=64 TCLBIN=64 OBJECTS="file735032f41a17.o"
make would use
if test "zfile735032f41a17.o" != "z"; then \
if test -e "file735032f41a17-win.def"; then \
echo "C:/rtools40/mingw64/bin/"g++ -shared -s -static-libgcc -o file735032f41a17.dll file735032f41a17-win.def file735032f41a17.o "C:/Users/loren/Documents/R/win-library/4.0/rstan/lib/x64/libStanServices.a" -L"C:/Users/loren/Documents/R/win-library/4.0/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/loren/Documents/R/win-library/4.0/RcppParallel/lib/x64" -ltbb -L"C:/PROGRA~1/R/R-40~1.4/bin/x64" -lR ; \
"C:/rtools40/mingw64/bin/"g++ -shared -s -static-libgcc -o file735032f41a17.dll file735032f41a17-win.def file735032f41a17.o "C:/Users/loren/Documents/R/win-library/4.0/rstan/lib/x64/libStanServices.a" -L"C:/Users/loren/Documents/R/win-library/4.0/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/loren/Documents/R/win-library/4.0/RcppParallel/lib/x64" -ltbb -L"C:/PROGRA~1/R/R-40~1.4/bin/x64" -lR ; \
else \
echo EXPORTS > tmp.def; \
"C:/rtools40/mingw64/bin/"nm file735032f41a17.o | sed -n 's/^.* [BCDRT] / /p' | sed -e '/[.]refptr[.]/d' -e '/[.]weak[.]/d' | sed 's/[^ ][^ ]*/"&"/g' >> tmp.def; \
echo "C:/rtools40/mingw64/bin/"g++ -shared -s -static-libgcc -o file735032f41a17.dll tmp.def file735032f41a17.o "C:/Users/loren/Documents/R/win-library/4.0/rstan/lib/x64/libStanServices.a" -L"C:/Users/loren/Documents/R/win-library/4.0/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/loren/Documents/R/win-library/4.0/RcppParallel/lib/x64" -ltbb -L"C:/PROGRA~1/R/R-40~1.4/bin/x64" -lR ; \
"C:/rtools40/mingw64/bin/"g++ -shared -s -static-libgcc -o file735032f41a17.dll tmp.def file735032f41a17.o "C:/Users/loren/Documents/R/win-library/4.0/rstan/lib/x64/libStanServices.a" -L"C:/Users/loren/Documents/R/win-library/4.0/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/loren/Documents/R/win-library/4.0/RcppParallel/lib/x64" -ltbb -L"C:/PROGRA~1/R/R-40~1.4/bin/x64" -lR ; \
rm -f tmp.def; \
fi \
fi
Error in compileCode(f, code, language = language, verbose = verbose) :
C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/loren/Documents/R/win-library/4.0/rstan/lib/x64/libStanServices.a(stan_fit.o):stan_fit.cpp:(.data$_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1[_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1]+0x0): multiple definition of `boost::math::detail::bessel_j0<long double>(long double)::P1'; file735032f41a17.o:file735032f41a17.cpp:(.rdata$_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1[_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1]+0x0): first defined hereC:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/loren/Documents/R/win-library/4.0/rstan/lib/x64/libStanServices.a(stan_fit.o):stan_fit.cpp:(.data$_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2QS[_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2QS]+0x0): multiple definition of `boost::math::detail::bessel_j0<long double>(long double)::QS'; file735032f41a17.o:file735032f41a
Error in sink(type = "output") : invalid connection
This is the first time I have asked a question in the forums. So, if I have not given you all the information you need, don't hesitate to ask for it. Thanks much for your help.
Seems this is common:
> sessionInfo()
R version 4.0.4 (2021-02-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rstan_2.21.2 StanHeaders_2.21.0-7 bayesplot_1.8.0 sjPlot_2.8.7 survminer_0.4.8
[6] ggpubr_0.4.0 survival_3.2-7 rstanarm_2.21.1 brms_2.14.4 Rcpp_1.0.6
[11] finalfit_1.0.2 lubridate_1.7.9.2 reshape2_1.4.4 googlesheets4_0.2.0 forcats_0.5.1
[16] stringr_1.4.0 dplyr_1.0.4 purrr_0.3.4 readr_1.4.0 tidyr_1.1.2
[21] tibble_3.0.6 ggplot2_3.3.3 tidyverse_1.3.0
loaded via a namespace (and not attached):
[1] readxl_1.3.1 backports_1.2.1 plyr_1.8.6 igraph_1.2.6 splines_4.0.4
[6] crosstalk_1.1.1 TH.data_1.0-10 rstantools_2.1.1 inline_0.3.17 digest_0.6.27
[11] htmltools_0.5.1.1 rsconnect_0.8.16 magrittr_2.0.1 openxlsx_4.2.3 modelr_0.1.8
[16] RcppParallel_5.0.2 matrixStats_0.58.0 xts_0.12.1 sandwich_3.0-0 askpass_1.1
[21] prettyunits_1.1.1 colorspace_2.0-0 rvest_0.3.6 xfun_0.20 haven_2.3.1
[26] callr_3.5.1 crayon_1.4.1 jsonlite_1.7.2 lme4_1.1-26 zoo_1.8-8
[31] glue_1.4.2 gargle_0.5.0 gtable_0.3.0 emmeans_1.5.4 sjstats_0.18.1
[36] sjmisc_2.8.6 V8_3.4.0 car_3.0-10 pkgbuild_1.2.0 abind_1.4-5
[41] scales_1.1.1 mvtnorm_1.1-1 DBI_1.1.1 ggeffects_1.0.1 rstatix_0.7.0
[46] miniUI_0.1.1.1 performance_0.7.0 xtable_1.8-4 foreign_0.8-81 km.ci_0.5-2
[51] stats4_4.0.4 DT_0.17 htmlwidgets_1.5.3 httr_1.4.2 threejs_0.3.3
[56] ellipsis_0.3.1 mice_3.13.0 pkgconfig_2.0.3 loo_2.4.1 dbplyr_2.1.0
[61] effectsize_0.4.3 tidyselect_1.1.0 rlang_0.4.10 later_1.1.0.1 munsell_0.5.0
[66] cellranger_1.1.0 tools_4.0.4 cli_2.3.0 generics_0.1.0 sjlabelled_1.1.7
[71] broom_0.7.4 ggridges_0.5.3 fastmap_1.1.0 knitr_1.31 processx_3.4.5
[76] fs_1.5.0 zip_2.1.1 survMisc_0.5.5 nlme_3.1-152 mime_0.9
[81] projpred_2.0.2 xml2_1.3.2 compiler_4.0.4 shinythemes_1.2.0 rstudioapi_0.13
[86] gamm4_0.2-6 curl_4.3 ggsignif_0.6.0 reprex_1.0.0 statmod_1.4.35
[91] stringi_1.5.3 parameters_0.11.0 ps_1.5.0 Brobdingnag_1.2-6 lattice_0.20-41
[96] Matrix_1.3-2 nloptr_1.2.2.2 markdown_1.1 KMsurv_0.1-5 shinyjs_2.0.0
[101] vctrs_0.3.6 pillar_1.4.7 lifecycle_1.0.0 bridgesampling_1.0-0 estimability_1.3
[106] insight_0.13.0 data.table_1.13.6 httpuv_1.5.5 R6_2.5.0 promises_1.1.1
[111] gridExtra_2.3 rio_0.5.16 codetools_0.2-18 boot_1.3-26 colourpicker_1.1.0
[116] MASS_7.3-53 gtools_3.8.2 assertthat_0.2.1 openssl_1.4.3 withr_2.4.1
[121] shinystan_2.5.0 multcomp_1.4-16 bayestestR_0.8.2 mgcv_1.8-33 parallel_4.0.4
[126] hms_1.0.0 grid_4.0.4 coda_0.19-4 minqa_1.2.4 carData_3.0-4
[131] googledrive_1.0.1 shiny_1.6.0 base64enc_0.1-3 dygraphs_1.1.1.6
The following very simple stan model elicits the above error
model <- "
data{
int<lower=0> N;
vector[N] Y;
vector[N] X;
}
parameters{
real beta;
real mu;
real<lower=0> sigma;
}
model{
Y ~ normal(mu + beta*X, sigma);
mu ~ normal(0, 1);
beta ~ normal(0, 1);
sigma ~ gamma(0.1, 0.1);
}"
stan_model(model_code = model)
I was able to stumble onto a solution. I re-installed rstan. I have no idea what the problem was or why this fixed it. If others would like to weigh in, that would be much appreciated. Thanks to those who put any thought into my query.

Rmarkdown: PDF file can not generate with a loop

I've built a for loop to generate a series of PDF files automatically, but it says:
output file: test_chinese.knit.md
"C:/PROGRA~2/Pandoc/pandoc" +RTS -K512m -RTS test_chinese.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output 1TEST.tex --template "C:\Users\adminstor\Documents\R\win-library\3.4\rmarkdown\rmd\latex\default-1.17.0.2.tex" --highlight-style tango --pdf-engine pdflatex --variable graphics=yes --variable "geometry:margin=1in" --variable "compact-title:yes"
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (MiKTeX 2.9.6650 64-bit)
entering extended mode
! Argument of \CJK#XX has an extra }.
<inserted text>
\par
l.30 breaklinks=true}
Error: Failed to compile 1TEST.tex. See 1TEST.log for more info.
In addition: Warning messages:
1: running command '"pdflatex" -halt-on-error -interaction=batchmode "1TEST.tex"' had status 1
2: running command '"pdflatex" -halt-on-error -interaction=batchmode "1TEST.tex"' had status 1
Have to mention that: The .rmd file could run successfully without the for loop.
The for loop I built is:
for (i in 1:5){
cat(i, '\n')
rmarkdown::render("test_chinese.Rmd",
encoding = 'UTF-8',
params = list(file_number = i),
output_file = paste0(i, "TEST.pdf"),
output_format = 'pdf_document')
}
Since I'm generating a Chinese file, the TeX Template is CTeX Template with TinyTex.
Here is my sessionInfo():
> sessionInfo()
R version 3.4.4 (2018-03-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936 LC_CTYPE=Chinese (Simplified)_China.936 LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C LC_TIME=Chinese (Simplified)_China.936
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rvest_0.3.2 xml2_1.2.0 knitr_1.20 rmarkdown_1.10
loaded via a namespace (and not attached):
[1] Rcpp_0.12.16 magrittr_1.5 devtools_1.13.6 R6_2.2.2 stringr_1.3.1 httr_1.3.1 highr_0.6 tools_3.4.4
[9] xfun_0.3 tinytex_0.8 postr_0.0.0 git2r_0.23.0 withr_2.1.2 selectr_0.4-1 htmltools_0.3.6 yaml_2.2.0
[17] rprojroot_1.3-2 digest_0.6.15 rsconnect_0.8.8 curl_3.2 memoise_1.1.0 evaluate_0.11 stringi_1.1.7 compiler_3.4.4
[25] rticles_0.5 backports_1.1.2
Looking forward for your help!
Thanks everyone.

R data.table and STRING_ELT() error: How to fix 'character vector' vs 'char' error?

After updating from R 3.3 to R 3.4 I have this error when using data.table package:
STRING_ELT() can only be applied to a 'character vector', not a 'char'
Has anyone experienced the same? I'm thinking about downgrading to "fix" this.
This is my session information:
> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.2 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] bindrcpp_0.2 purrrlyr_0.0.2 readxl_1.0.0 stringr_1.2.0
[5] bit64_0.9-7 bit_1.1-12 dtplyr_0.0.2 data.table_1.10.4
[9] dplyr_0.7.1 purrr_0.2.2.2 readr_1.1.1 tidyr_0.6.3
[13] tibble_1.3.3 ggplot2_2.2.1 tidyverse_1.1.1
loaded via a namespace (and not attached):
[1] Rcpp_0.12.11 cellranger_1.1.0 compiler_3.4.0 plyr_1.8.4 bindr_0.1
[6] forcats_0.2.0 tools_3.4.0 jsonlite_1.5 lubridate_1.6.0 nlme_3.1-131
[11] gtable_0.2.0 lattice_0.20-35 pkgconfig_2.0.1 rlang_0.1.1 psych_1.7.5
[16] parallel_3.4.0 haven_1.0.0 xml2_1.1.1 httr_1.2.1 hms_0.3
[21] grid_3.4.0 glue_1.1.1 R6_2.2.2 foreign_0.8-69 modelr_0.1.0
[26] reshape2_1.4.2 magrittr_1.5 scales_0.4.1 rvest_0.3.2 assertthat_0.2.0
[31] mnormt_1.5-5 colorspace_1.3-2 stringi_1.1.5 lazyeval_0.2.0 munsell_0.4.3
[36] broom_0.4.2
Totally stupid solution:
Uninstall everything with apt-get uninstall + apt-get autoclean.
Remove other conflicting R versions such as MRAN.
Remove all user packages directories.
Reinstall R base again.
It works !

Go-QT Binding: QAbstractAnimation No such file or directory

I am using go-QT binding(https://github.com/therecipe/qt). My code is compiling & working good for amd64 but when I try to cross compile it for arm devices (Raspberrypi), it gives below error. Please advise how to solve this issue
**src/github.com/therecipe/qt/core/core.cpp:9:30: fatal error:
QAbstractAnimation: No such file or directory
compilation terminated.**
Environment Variables
GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/minhaj/GoLang"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
GOARM=""
CC="arm-linux-gnueabi-gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-
map=/tmp/go-build728594690=/tmp/go-build -gno-record-gcc-switches"
CXX="arm-linux-gnueabi-g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
Compilation Result
go build -v IndoorMass/
crypto
encoding
encoding/base64
crypto/sha256
unicode/utf16
flag
encoding/json
golang.org/x/image/math/fixed
github.com/golang/freetype/raster
golang.org/x/image/font
github.com/icza/mjpeg
github.com/golang/freetype/truetype
github.com/skip2/go-qrcode/bitset
github.com/skip2/go-qrcode/reedsolomon
path/filepath
io/ioutil
github.com/skip2/go-qrcode
container/list
golang.org/x/net/context
github.com/mattn/go-sqlite3
IndoorMass/General
github.com/tidwall/match
github.com/tidwall/gjson
compress/gzip
crypto/subtle
crypto/cipher
crypto/aes
internal/syscall/unix
math/rand
math/big
crypto/rand
crypto/des
crypto/elliptic
crypto/sha512
encoding/asn1
crypto/ecdsa
crypto/hmac
crypto/internal/cipherhw
crypto/md5
crypto/rc4
crypto/rsa
crypto/sha1
crypto/dsa
crypto/x509/pkix
encoding/hex
encoding/pem
internal/nettrace
internal/singleflight
net
crypto/x509
vendor/golang_org/x/crypto/chacha20poly1305/internal/chacha20
vendor/golang_org/x/crypto/poly1305
vendor/golang_org/x/crypto/chacha20poly1305
vendor/golang_org/x/crypto/curve25519
crypto/tls
vendor/golang_org/x/net/http2/hpack
vendor/golang_org/x/net/idna
vendor/golang_org/x/net/lex/httplex
vendor/golang_org/x/text/transform
vendor/golang_org/x/text/unicode/norm
vendor/golang_org/x/text/width
mime
mime/quotedprintable
net/textproto
mime/multipart
net/http/httptrace
net/http/internal
path
net/http
IndoorMass/Server
github.com/kaey/framebuffer
os/exec
github.com/mrmorphic/hwio
github.com/DexterInd/GrovePi/Software/Go/grovepi
IndoorMass/Sensor
github.com/therecipe/qt
github.com/therecipe/qt/core
# github.com/therecipe/qt/core
src/github.com/therecipe/qt/core/core.cpp:9:30: fatal error:
QAbstractAnimation: No such file or directory
compilation terminated.
IndoorMass/DB
IndoorMass/Manager

perl Inline cpp not working windows 32 bit

I'm using perl Inline::CPP with this sample code from cpan documentation
use Inline CPP;
print "9 + 16 = ", add(9, 16), "\n";
print "9 - 16 = ", subtract(9, 16), "\n";
__END__
__CPP__
int add(int x, int y) {
return x + y;
}
int subtract(int x, int y) {
return x - y;
}
The Error Log
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp -type
"C:\strawberry\perl\lib\ExtUtils\typemap" inline_pl_172d.xs > inline_pl_172
sc && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv -- inline_pl_
d.xsc inline_pl_172d.c
Didn't find a 'MODULE ... PACKAGE ... PREFIX' line
g++ -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEX
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\
00\" -DXS_VERSION=\"0.00\" "-IC:\strawberry\perl\lib\CORE" inline_pl_17
c
inline_pl_172d.xs:28:2: error: 'MODULE' does not name a type
dmake: Error code 129, while making 'inline_pl_172d.o'
A problem was encountered while attempting to compile and install your Inline
CPP code. The command that failed was:
dmake > out.make 2>&1
The build directory was:
D:\university\phd\data\datamail\Chordata2\_Inline\build\inline_pl_172d
To debug the problem, cd to the build directory, and inspect the output files
at D:\university\phd\data\datamail\Chordata2\inline.pl line 0.
...propagated at C:/strawberry/perl/site/lib/Inline/C.pm line 772.
INIT failed--call queue aborted.
If the package is not installed well on my machine How to know and fix it ?
The your code works for me without modification once I installed Inline::CPP from CPAN...
c:\Perl>
c:\Perl>perl StackOverflow.pl
Set up gcc environment - 3.4.5 (mingw-vista special r3)
9 + 16 = 25
9 - 16 = -7
c:\Perl>
This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2012, Larry Wall
Binary build 1603 [296746] provided by ActiveState http://www.ActiveState.com
Built Mar 13 2013 11:29:21
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
c:\Perl>
This is on a Win7 32 bit system running ActivePerl 5.16.3 multi-thread and Inline::CPP 0.46 using the default install settings in the Inline::CPP module setup. From the looks of things Perl appears to be using GCC 3.4.5 as the module compiler...
c:\Perl>gcc -v
Reading specs from C:/Perl/site/lib/auto/MinGW/bin/../lib/gcc/mingw32/3.4.5/specs
Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-s
jlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.5 (mingw-vista special r3)
c:\Perl>
The make utility used is dmake 4.11...
c:\Perl>dmake -V MAKE_VERSION
dmake.exe - Version 4.11-20080107-SHAY (Windows / MS Visual C++)
Copyright (c) 1990,...,1997 by WTI Corp.
Default Configuration:
MAXLINELENGTH := 32766
MAXPROCESSLIMIT := 4
MAXPROCESS := 1
.IMPORT .IGNORE: DMAKEROOT
.MAKEFILES : makefile.mk makefile
.SOURCE : .NULL
DMAKEROOT *= $(ABSMAKECMD:d)startup
MAKESTARTUP := $(DMAKEROOT)\startup.mk
Please read the NEWS file for the latest release notes.
c:\Perl>
Complete Inline::CPP CPAN module install log...
c:\Perl>cpan
Set up gcc environment - 3.4.5 (mingw-vista special r3)
cpan shell -- CPAN exploration and modules installation (v2.00)
Enter 'h' for help.
cpan> install Inline::CPP
Reading 'C:\Perl\cpan\Metadata'
Database was generated on Mon, 28 Oct 2013 11:08:37 GMT
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/01mailrc.txt.gz
Reading 'C:\Perl\cpan\sources\authors\01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://ppm.activestate.com/CPAN/modules/02packages.details.txt.gz
Reading 'C:\Perl\cpan\sources\modules\02packages.details.txt.gz'
Database was generated on Tue, 05 Nov 2013 20:53:02 GMT
Warning: This index file is 40 days old.
Please check the host you chose as your CPAN mirror for staleness.
I'll continue but problems seem likely to happen.
............................................................................DONE
Fetching with LWP:
http://ppm.activestate.com/CPAN/modules/03modlist.data.gz
Reading 'C:\Perl\cpan\sources\modules\03modlist.data.gz'
............................................................................DONE
Writing C:\Perl\cpan\Metadata
Running install for module 'Inline::CPP'
Running make for D/DA/DAVIDO/Inline-CPP-0.46.tar.gz
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/id/D/DA/DAVIDO/Inline-CPP-0.46.tar.gz
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/id/D/DA/DAVIDO/CHECKSUMS
Checksum for C:\Perl\cpan\sources\authors\id\D\DA\DAVIDO\Inline-CPP-0.46.tar.gz ok
Scanning cache C:\Perl/cpan/build for sizes
...........................................................................-DONE
DEL(1/2): C:\Perl\cpan\build\Math-Polynomial-1.005-ahaC2G
DEL(2/2): C:\Perl\cpan\build\Math-Polynomial-1.005-ahaC2G.yml
Inline-CPP-0.46/
Inline-CPP-0.46/Makefile.PL
Inline-CPP-0.46/META.yml
Inline-CPP-0.46/README
Inline-CPP-0.46/MANIFEST
Inline-CPP-0.46/TESTED
Inline-CPP-0.46/Changes
Inline-CPP-0.46/MANIFEST.SKIP
Inline-CPP-0.46/t/
Inline-CPP-0.46/t/03prefix.t
Inline-CPP-0.46/t/02basic.t
Inline-CPP-0.46/t/14changes.t
Inline-CPP-0.46/t/11rewrite_config.t
Inline-CPP-0.46/t/04charptr.t
Inline-CPP-0.46/t/07perlcritic.t
Inline-CPP-0.46/t/00load_prereqs.t
Inline-CPP-0.46/t/01fn_cans.t
Inline-CPP-0.46/t/10kwalitee.t
Inline-CPP-0.46/t/06fn_regress.t
Inline-CPP-0.46/t/08cppguess.t
Inline-CPP-0.46/t/09pod_coverage.t
Inline-CPP-0.46/t/13version_numbers.t
Inline-CPP-0.46/t/12custom_libs.t
Inline-CPP-0.46/t/05pod.t
Inline-CPP-0.46/grammar/
Inline-CPP-0.46/grammar/Makefile.PL
Inline-CPP-0.46/grammar/grammar.pm
Inline-CPP-0.46/grammar/t/
Inline-CPP-0.46/grammar/t/03inline.t
Inline-CPP-0.46/grammar/t/02scope.t
Inline-CPP-0.46/grammar/t/10struct.t
Inline-CPP-0.46/grammar/t/01nherit.t
Inline-CPP-0.46/grammar/t/05virt.t
Inline-CPP-0.46/grammar/t/09purevt.t
Inline-CPP-0.46/grammar/t/11minhrt.t
Inline-CPP-0.46/grammar/t/15stvar.t
Inline-CPP-0.46/grammar/t/14const.t
Inline-CPP-0.46/grammar/t/00pod_coverage.t
Inline-CPP-0.46/grammar/t/16varlst.t
Inline-CPP-0.46/grammar/t/13vararg.t
Inline-CPP-0.46/grammar/t/12retlst.t
Inline-CPP-0.46/grammar/t/17memberarray.t
Inline-CPP-0.46/grammar/t/06deflt.t
Inline-CPP-0.46/grammar/t/07static.t
Inline-CPP-0.46/grammar/t/08anon.t
Inline-CPP-0.46/grammar/t/04const.t
Inline-CPP-0.46/CPP.pm
Inline-CPP-0.46/META.json
Inline-CPP-0.46/lib/
Inline-CPP-0.46/lib/Inline/
Inline-CPP-0.46/lib/Inline/CPP/
Inline-CPP-0.46/lib/Inline/CPP/Config.pm
Inline-CPP-0.46/lib/Inline/CPP.pod
CPAN.pm: Building D/DA/DAVIDO/Inline-CPP-0.46.tar.gz
Set up gcc environment - 3.4.5 (mingw-vista special r3)
Warning: prerequisite Inline version 0.53 not found. at Makefile.PL line 49.
Warning: prerequisite Inline::C version 0.53 not found. at Makefile.PL line 49.
This will configure and build Inline::C++.
What default C++ compiler would you like to use? [C:\Perl\site\bin\g++.exe]
What default libraries would you like to include? [-lstdc++]
Detected <iostream> style headers. ('.h' not needed.)
Checking if your kit is complete...
Looks good
Warning: prerequisite Inline 0.53 not found. We have 0.52.
Warning: prerequisite Inline::C 0.53 not found. We have 0.52.
Writing Makefile for Inline::CPP::grammar
Writing MYMETA.yml and MYMETA.json
Writing Makefile for Inline::CPP
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- DAVIDO/Inline-CPP-0.46.tar.gz ----
Inline::C [requires]
Inline [requires]
Running make test
Delayed until after prerequisites
Running make install
Delayed until after prerequisites
Running install for module 'Inline::C'
Running make for S/SI/SISYPHUS/Inline-0.53.tar.gz
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/id/S/SI/SISYPHUS/Inline-0.53.tar.gz
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/id/S/SI/SISYPHUS/CHECKSUMS
Checksum for C:\Perl\cpan\sources\authors\id\S\SI\SISYPHUS\Inline-0.53.tar.gz ok
Inline-0.53/
Inline-0.53/C/
Inline-0.53/C/C-Cookbook.pod
Inline-0.53/C/C.pm
Inline-0.53/C/C.pod
Inline-0.53/C/Changes
Inline-0.53/C/lib/
Inline-0.53/C/lib/Inline/
Inline-0.53/C/lib/Inline/C/
Inline-0.53/C/lib/Inline/C/ParseRecDescent.pm
Inline-0.53/C/lib/Inline/C/ParseRegExp.pm
Inline-0.53/C/Makefile.PL
Inline-0.53/C/README
Inline-0.53/C/rt/
Inline-0.53/C/rt/grammars.t
Inline-0.53/C/t/
Inline-0.53/C/t/00init.t
Inline-0.53/C/t/01syntax.t
Inline-0.53/C/t/02config.t
Inline-0.53/C/t/03typemap.t
Inline-0.53/C/t/04perlapi.t
Inline-0.53/C/t/05xsmode.t
Inline-0.53/C/t/06parseregexp.t
Inline-0.53/C/t/07typemap_multi.t
Inline-0.53/C/t/08taint.t
Inline-0.53/C/t/08taint_1.p
Inline-0.53/C/t/08taint_2.p
Inline-0.53/C/t/08taint_3.p
Inline-0.53/C/t/09parser.t
Inline-0.53/C/t/10callback.t
Inline-0.53/C/t/11default_readonly.t
Inline-0.53/C/t/12taint_old.t
Inline-0.53/C/t/14void_arg.t
Inline-0.53/C/t/15ccflags.t
Inline-0.53/C/t/16ccflagsex.t
Inline-0.53/C/t/17prehead.t
Inline-0.53/C/t/18quote_space.t
Inline-0.53/C/t/19INC.t
Inline-0.53/C/t/20eval.t
Inline-0.53/C/t/21read_DATA.t
Inline-0.53/C/t/22read_DATA_2.t
Inline-0.53/C/t/23validate.t
Inline-0.53/C/t/bar/
Inline-0.53/C/t/bar/find_me_in_bar.h
Inline-0.53/C/t/foo/
Inline-0.53/C/t/foo/find_me_in_foo.h
Inline-0.53/C/t/prehead.in
Inline-0.53/C/t/soldier_typemap
Inline-0.53/C/t/typemap
Inline-0.53/Changes
Inline-0.53/Inline-API.pod
Inline-0.53/Inline-FAQ.pod
Inline-0.53/Inline-Support.pod
Inline-0.53/Inline.pm
Inline-0.53/Inline.pod
Inline-0.53/kobes.log
Inline-0.53/lib/
Inline-0.53/lib/Inline/
Inline-0.53/lib/Inline/denter.pm
Inline-0.53/lib/Inline/Foo.pm
Inline-0.53/lib/Inline/MakeMaker/
Inline-0.53/lib/Inline/MakeMaker/Changes
Inline-0.53/lib/Inline/MakeMaker.pm
Inline-0.53/Makefile.PL
Inline-0.53/MANIFEST
Inline-0.53/modules/
Inline-0.53/modules/Math/
Inline-0.53/modules/Math/Simple/
Inline-0.53/modules/Math/Simple/Changes
Inline-0.53/modules/Math/Simple/Makefile.PL
Inline-0.53/modules/Math/Simple/MANIFEST
Inline-0.53/modules/Math/Simple/Simple.pm
Inline-0.53/modules/Math/Simple/test.pl
Inline-0.53/README
Inline-0.53/symbols.perl
Inline-0.53/t/
Inline-0.53/t/00init.t
Inline-0.53/t/01usages.t
Inline-0.53/t/02config.t
Inline-0.53/t/03errors.t
Inline-0.53/t/04create.t
Inline-0.53/t/05files.t
Inline-0.53/t/06rewrite_config.p
Inline-0.53/t/06rewrite_config.t
Inline-0.53/t/07rewrite2_config.p
Inline-0.53/t/07rewrite2_config.t
Inline-0.53/t/file
Inline-0.53/ToDo
CPAN.pm: Building S/SI/SISYPHUS/Inline-0.53.tar.gz
Set up gcc environment - 3.4.5 (mingw-vista special r3)
Checking if your kit is complete...
Looks good
Inline::C is packaged with Inline.pm because it is the most commonly used
Inline Language Support Module (ILSM).
See also: Inline::ASM, ::Awk, ::BC, ::Basic, ::Befunge, ::CPP (C++), ::CPR,
::Foo, ::Guile, ::Java, ::Octave, ::PERL, ::Python, ::Ruby, ::TT,
::Tcl and ::WebChat.
Config.pm indicates that your version of Perl was built with this C compiler:
C:\Perl\site\bin\gcc.exe
I have located this compiler on your system.
Do you want to install Inline::C? [y] y
Writing Makefile for Inline::C
Writing MYMETA.yml and MYMETA.json
Writing Makefile for Inline
Writing MYMETA.yml and MYMETA.json
Fixing Makefile for MSWin32
cp Inline.pod blib\lib\Inline.pod
cp lib/Inline/MakeMaker/Changes blib\lib\Inline\MakeMaker\Changes
cp lib/Inline/denter.pm blib\lib\Inline\denter.pm
AutoSplitting blib\lib\Inline\denter.pm (blib\lib\auto\Inline\denter)
cp Inline.pm blib\lib\Inline.pm
AutoSplitting blib\lib\Inline.pm (blib\lib\auto\Inline)
cp lib/Inline/Foo.pm blib\lib\Inline\Foo.pm
cp Inline-API.pod blib\lib\Inline-API.pod
cp lib/Inline/MakeMaker.pm blib\lib\Inline\MakeMaker.pm
cp Inline-FAQ.pod blib\lib\Inline-FAQ.pod
cp Inline-Support.pod blib\lib\Inline-Support.pod
cp lib/Inline/C/ParseRegExp.pm ..\blib\lib\Inline\C\ParseRegExp.pm
cp C-Cookbook.pod ..\blib\lib\Inline\C-Cookbook.pod
cp C.pm ..\blib\lib\Inline\C.pm
cp C.pod ..\blib\lib\Inline\C.pod
cp lib/Inline/C/ParseRecDescent.pm ..\blib\lib\Inline\C\ParseRecDescent.pm
SISYPHUS/Inline-0.53.tar.gz
C:\Perl\site\bin\dmake.exe -- OK
Running make test
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/00init.t ............. ok
t/01usages.t ........... ok
t/02config.t ........... ok
t/03errors.t ........... ok
t/04create.t ........... ok
t/05files.t ............ ok
t/06rewrite_config.t ... ok
t/07rewrite2_config.t .. ok
All tests successful.
Files=8, Tests=19, 15 wallclock secs ( 0.11 usr + 0.06 sys = 0.17 CPU)
Result: PASS
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, '..\blib\lib', '..\blib\arch')" t/*.t
t/00init.t .............. ok
t/01syntax.t ............ ok
t/02config.t ............ ok
t/03typemap.t ........... ok
t/04perlapi.t ........... ok
t/05xsmode.t ............ ok
t/06parseregexp.t ....... ok
t/07typemap_multi.t ..... ok
t/08taint.t ............. ok
t/09parser.t ............
This test could take a couple of minutes to run
t/09parser.t ............ ok
t/10callback.t .......... ok
t/11default_readonly.t .. ok
t/12taint_old.t ......... Skipped - applies only to perl 5.6.x
t/12taint_old.t ......... ok
t/14void_arg.t .......... ok
t/15ccflags.t ........... ok
t/16ccflagsex.t ......... ok
t/17prehead.t ........... ok
t/18quote_space.t ....... ok
t/19INC.t ............... ok
t/20eval.t .............. ok
t/21read_DATA.t ......... ok
t/22read_DATA_2.t ....... ok
t/23validate.t .......... ok
All tests successful.
Files=23, Tests=71, 165 wallclock secs ( 0.12 usr + 0.05 sys = 0.17 CPU)
Result: PASS
SISYPHUS/Inline-0.53.tar.gz
C:\Perl\site\bin\dmake.exe test -- OK
Running make install
Prepending C:\Perl\cpan\build\Inline-0.53-JPPUvK/blib/arch C:\Perl\cpan\build\Inline-0.53-JPPUvK/blib/lib to PERL5LIB for 'install'
Installing C:\Perl\site\lib\Inline.pm
Installing C:\Perl\site\lib\Inline.pod
Installing C:\Perl\site\lib\Inline\C.pm
Installing C:\Perl\site\lib\Inline\MakeMaker.pm
Installing C:\Perl\site\lib\Inline\MakeMaker\Changes
Appending installation info to C:\Perl\lib/perllocal.pod
SISYPHUS/Inline-0.53.tar.gz
C:\Perl\site\bin\dmake.exe install -- OK
Inline is up to date (0.53).
Running make for D/DA/DAVIDO/Inline-CPP-0.46.tar.gz
Has already been unwrapped into directory C:\Perl\cpan\build\Inline-CPP-0.46-QMmSMq
CPAN.pm: Building D/DA/DAVIDO/Inline-CPP-0.46.tar.gz
cp lib/Inline/CPP/Config.pm blib\lib\Inline\CPP\Config.pm
cp CPP.pm blib\lib\Inline\CPP.pm
cp lib/Inline/CPP.pod blib\lib\Inline\CPP.pod
cp grammar.pm ..\blib\lib\Inline\CPP\grammar.pm
DAVIDO/Inline-CPP-0.46.tar.gz
C:\Perl\site\bin\dmake.exe -- OK
Running make test
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/00load_prereqs.t ..... # $Config{osname}: MSWin32
# $Config{cc}: C:\Perl\site\bin\gcc.exe
# $Config{gccversion}: 3.4.5 (mingw-vista special r3)
t/00load_prereqs.t ..... ok
t/01fn_cans.t .......... ok
t/02basic.t ............ ok
t/03prefix.t ........... ok
t/04charptr.t .......... ok
t/05pod.t .............. skipped: Author Test: Set $ENV{RELEASE_TESTING} to a true value to run.
t/06fn_regress.t ....... ok
t/07perlcritic.t ....... skipped: Author Test: Set $ENV{RELEASE_TESTING} to a true value to run.
t/08cppguess.t ......... # ExtUtils::CppGuess not installed. This set of tests and diagnostics
# is more thorough when ExtUtils::CppGuess can be loaded.
# Detected basic defaults (Strawberry, etc.).
#
# Compiler guess:
t/08cppguess.t ......... 1/2 # Makefile.PL approach: [C:\Perl\site\bin\g++.exe].
#
# Linker guess:
# Makefile.PL approach: [-lstdc++].
t/08cppguess.t ......... ok
t/09pod_coverage.t ..... skipped: Author Test: Set $ENV{RELEASE_TESTING} to a true value to run.
t/10kwalitee.t ......... skipped: Author Test: Set $ENV{RELEASE_TESTING} to a true value to run.
t/11rewrite_config.t ... skipped: Author Test: Set $ENV{RELEASE_TESTING} to a true value to run.
t/12custom_libs.t ...... ok
t/13version_numbers.t .. skipped: Author Test: Set $ENV{RELEASE_TESTING} to a true value to run.
t/14changes.t .......... skipped: Author tests skipped. Set $ENV{RELEASE_TESTING} to run
All tests successful.
Files=15, Tests=29, 22 wallclock secs ( 0.09 usr + 0.05 sys = 0.14 CPU)
Result: PASS
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, '..\blib\lib', '..\blib\arch')" t/*.t
t/00pod_coverage.t .. ok
t/01nherit.t ........ ok
t/02scope.t ......... ok
t/03inline.t ........ ok
t/04const.t ......... ok
t/05virt.t .......... ok
t/06deflt.t ......... ok
t/07static.t ........ ok
t/08anon.t .......... ok
t/09purevt.t ........ ok
t/10struct.t ........ ok
t/11minhrt.t ........ ok
t/12retlst.t ........ ok
t/13vararg.t ........ ok
t/14const.t ......... ok
t/15stvar.t ......... ok
t/16varlst.t ........ ok
t/17memberarray.t ... ok
All tests successful.
Test Summary Report
-------------------
t/11minhrt.t (Wstat: 0 Tests: 38 Failed: 0)
TODO passed: 28-31
Files=18, Tests=79, 89 wallclock secs ( 0.14 usr + 0.00 sys = 0.14 CPU)
Result: PASS
DAVIDO/Inline-CPP-0.46.tar.gz
C:\Perl\site\bin\dmake.exe test -- OK
Running make install
Prepending C:\Perl\cpan\build\Inline-CPP-0.46-QMmSMq/blib/arch C:\Perl\cpan\build\Inline-CPP-0.46-QMmSMq/blib/lib to PERL5LIB for 'install'
Installing C:\Perl\site\lib\Inline\CPP.pm
Installing C:\Perl\site\lib\Inline\CPP.pod
Installing C:\Perl\site\lib\Inline\CPP\Config.pm
Installing C:\Perl\site\lib\Inline\CPP\grammar.pm
Appending installation info to C:\Perl\lib/perllocal.pod
DAVIDO/Inline-CPP-0.46.tar.gz
C:\Perl\site\bin\dmake.exe install -- OK
cpan> exit
Lockfile removed.
c:\Perl>
Hopes this helps.