我試圖讓與Rcpparmadillo特徵值,如下面的例子:[http://gallery.rcpp.org/articles/armadillo-eigenvalues]RcppArmadillo eig_sym編譯問題
當我通過它的做工精細cppFunction做到了。然而,當我做了一個.cpp文件,並嘗試將其集成到我的包我在編譯過程中出現以下錯誤:
C:/Users/Administrator/Documents/R/win-library/3.4/RcppArmadillo/include/armadillo_bits/compiler_setup.hpp:474:96: note: #pragma message: WARNING: use of OpenMP disabled; this compiler doesn't support OpenMP 3.0+ #pragma message ("WARNING: use of OpenMP disabled; this compiler doesn't support OpenMP 3.0+") ^ C:/RBuildTools/3.4/mingw_64/bin/g++ -shared -s -static-libgcc -o test.dll tmp.def RcppExports.o binarize_matrix.o char_uniqueC.o colSumsBinaryC.o colSumsC.o df_to_gbi1.o df_to_gbi_focal.o dimC.o edgelist_to_matrix.o ei.o empty_gbi.o equal_0.o extract_charcterVector_elements.o extract_col.o extract_numericVector_elements.o extract_row.o extract_value_from_id.o filtering_matrix.o find_col.o find_matrix_zero.o find_row.o get_association_matrix.o intersectC.o is_squareC.o lapplyC.o levelsC.o matchC.o perm_for_data_stream1C.o perm_for_data_stream_Control_factor.o randomization_vetor.o rcpp_hello.o rcpp_hello_world.o reachC.o reachC2.o rowSumsBinaryC.o rowSumsC.o strengthC.o strengthSymC.o sumC.o sup_0.o unmatchC.o vector_multiplication.o -Ld:/Compiler/gcc-4.9.3/local330/lib/x64 -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-34~1.1/bin/x64 -lR ei.o:ei.cpp:(.text$_ZN4arma6auxlib7eig_symIdNS_3MatIdEEEEbRNS_3ColIT_EERKNS_4BaseIS5_T0_EE[_ZN4arma6auxlib7eig_symIdNS_3MatIdEEEEbRNS_3ColIT_EERKNS_4BaseIS5_T0_EE]+0x5fa): undefined reference to `dsyev_' collect2.exe: error: ld returned 1 exit status no DLL was created
編輯1 我使用相同的代碼上的一個網址:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
arma::vec ei(arma::mat M) {
return arma::eig_sym(M);
}
我在Windows 10,Rstudio和R-3.4.1,RcppArmadillo 0.7.960.1.2,RCPP 0.12.12
EDIT2
對不起。只有當我添加此功能時纔會出現該錯誤。這似乎是錯誤:
ei.o:ei.cpp :(文字$ _ZN4arma6auxlib7eig_symIdNS_3MatIdEEEEbRNS_3ColIT_EERKNS_4BaseIS5_T0_EE [_ZN4arma6auxlib7eig_symIdNS_3MatIdEEEEbRNS_3ColIT_EERKNS_4BaseIS5_T0_EE] + 0x5fa):未定義的引用`dsyev_」 collect2.exe:錯誤:LD返回1個退出狀態 無DLL創建 錯誤:編譯失敗包「測試」
這似乎是相關的編譯器,因爲在此之前,我有這樣的:
C:/用戶/管理員/文檔/ R /勝-library/3.4/RcppArmadillo/include/armadillo_bits/compiler_setup.hpp:474:96:note:#pragma消息:警告:禁用OpenMP;此編譯器不支持OpenMP 3.0+ #pragma消息(「警告:使用OpenMP禁用;此編譯器不支持OpenMP 3.0+」)
有人可以幫助我嗎?
在此先感謝您的幫助
不可重現,不完整,格式不正確,使我們更容易幫助您。 –
嗨德克Eddelbuettel,我更新了我的文章,我準備好給予額外的細節,如果需要。 – Bas
現在加入---錯誤消息列出了十幾個文件,但是你說的是不能複製Gallery文章。這些*不是一回事*所以不要假裝它們是。而你的錯誤信息仍然是不可讀的。不要使用降價報價。 –