Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 犰狳;windows上的代码块_C++_Windows_Codeblocks_Linker Errors_Armadillo - Fatal编程技术网

C++ 犰狳;windows上的代码块

C++ 犰狳;windows上的代码块,c++,windows,codeblocks,linker-errors,armadillo,C++,Windows,Codeblocks,Linker Errors,Armadillo,让Armadillo 5.000.1在Windows 8.1上使用代码块13.12时遇到了重大问题 在项目构建选项->链接器设置中,我添加了库。\armadillo-5.000.1\examples\lib\u win64\blas\u win64\u MT.lib和。\armadillo-5.000.1\examples\lib\u win64\lapack\u win64\u MT.lib 在project build options->search directories中,我添加了。

让Armadillo 5.000.1在Windows 8.1上使用代码块13.12时遇到了重大问题


  • 项目构建选项->链接器设置
    中,我添加了库
    。\armadillo-5.000.1\examples\lib\u win64\blas\u win64\u MT.lib
    。\armadillo-5.000.1\examples\lib\u win64\lapack\u win64\u MT.lib
  • project build options->search directories
    中,我添加了
    。\armadillo-5.000.1\include
    。\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\程序文件\mingw-w64\x86\u64-4.9.2-posix-seh-rtu v4-rev2\mingw64\ include
    到编译器和
    到链接器
  • 我已经在
    config.hpp
    中取消注释了
    #定义ARMA\u使用\u LAPACK
    #定义ARMA\u使用\u BLAS
  • 我(我想)正在使用64位mingw编译器

运行example1.cpp文件时,出现以下错误:

-------------- Build: Debug in CS156b (compiler: GNU GCC Compiler)---------------

g++.exe -L..\armadillo-5.000.1\examples\lib_win64 -o bin\Debug\CS156b.exe obj\Debug\armadillo-5.000.1\examples\example1.o obj\Debug\load_data3.o   ..\armadillo-5.000.1\examples\lib_win64\lapack_win64_MT.lib ..\armadillo-5.000.1\examples\lib_win64\blas_win64_MT.lib
..\armadillo-5.000.1\examples\lib_win64\lapack_win64_MT.lib: error adding symbols: File format not recognized
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
另外,我的队友编写的代码在她的(Linux)计算机上运行良好

有人知道我做错了什么吗?

问题1: 不幸的是,我不知道什么是代码块。但显然链接器不理解lapack_win64_MT.lib文件格式。这与犰狳无关。您正在运行64位环境吗?您的链接器是否能够读取那些可能是Visual Studio格式的LIB?我看到您正在使用g++,这可能就是问题所在

问题2: 您需要一个固定大小的位置矩阵,但随后您需要迭代文件的长度。问题可能是文件中的数据行太少,因此无法正确填充sp_mat

locations = arma::umat(2, 102416306);
应该动态调整大小(例如从我的大脑,而不是100&保证工作):


关于在你的队友盒子上工作的代码,请注意:她可能在编译时没有调试符号和进行优化,这可能会导致为了提高速度而忽略运行时大小检查(例如给你的
std::logic_error

error: SpMat::SpMat(): number of locations is different than number of values

terminate called after throwing an instance of 'std::logic_error'
  what():  SpMat::SpMat(): number of locations is different than number of values

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 255 (0xFF)   execution time : 5.181 s
Press any key to continue.
locations = arma::umat(2, 102416306);
int no_of_lines;
for (no_of_lines = 0; std::getline(f, line); ++no_of_lines);
locations = arma::umat(2, no_of_lines);