在调试器中,我崩溃了上面的错误。没有调试器我崩溃了“加载共享库时出错:?:无法打开共享对象文件:没有这样的文件或目录”
我研究了这个,我认为这是一个链接到某个外部库的失败。我唯一的外部库是Gnu Scientific Library(libgsl.dll.a)。通过阅读其他问题,我在Windows%PATH%变量和我的bash $ PATH中都链接了库的位置。 / bin中有/bin/cyggsl-0.dll和/bin/cyggslcblas-0.dll,我也在%PATH中引用了这个目录。
注释掉对gsl Netbeans的引用编译并正确运行。
如何让Netbeans找到gsl DLL?假设gsl链接到库并且找不到这个库,我如何才能找到gsl在Netbeans中想要的内容? gsl库是一个C库(从Fortran翻译过来),所以可能会有一些残留的废话,但我很难过。
带问题的简单程序
# include <gsl/gsl_matrix.h>
int main() {
gsl_matrix * M = gsl_matrix_alloc(30, 30);
return 0;
}
Windows%PATH%:
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files (x86)\AMD APP\bin\x86_64;
C:\Program Files (x86)\AMD APP\bin\x86;
C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
%SystemRoot%\system32;
%SystemRoot%;%SystemRoot%\System32\Wbem;
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;
C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;
C:\Program Files (x86)\Windows Live\Shared;
C:\Program Files (x86)\Common Files\HP\Digital Imaging\bin;
C:\Program Files (x86)\HP\Digital Imaging\bin\;
C:\Program Files (x86)\HP\Digital Imaging\bin\Qt\Qt 4.3.3;
C:\Program Files\doxygen\bin;%systemroot%\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Graphviz2.30\bin;%systemroot%\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\QuickTime\QTSystem\;
C:\cygwin64\usr\lib
C:\bin
bash $ PATH
/usr/local/bin
/usr/lib/lapack
/usr/lib
/usr/bin
/Windows/System32/WindowsPowerShell/v1.0
/Windows/System32/Wbem
/Windows/system32
/Windows
/ProgramFiles86/Windows Live/Shared
/ProgramFiles86/QuickTime/QTSystem
/ProgramFiles86/Microsoft SQL Server/90/Tools/binn
/ProgramFiles86/Microsoft SQL Server/80/Tools/Binn
/ProgramFiles86/HP/Digital Imaging/bin/Qt/Qt 4.3.3
/ProgramFiles86/HP/Digital Imaging/bin
/ProgramFiles86/Graphviz2.30/bin
/ProgramFiles86/Common Files/Microsoft Shared/Windows Live
/ProgramFiles86/Common Files/HP/Digital Imaging/bin
/ProgramFiles86/ATI Technologies/ATI.ACE/Core-Static
/ProgramFiles86/AMD APP/bin/x86_64
/ProgramFiles86/AMD APP/bin/x86
/ProgramFiles/Java/jdk1.7.0_45/bin/
/ProgramFiles/doxygen/bin
/ProgramFiles/Common Files/Microsoft Shared/Windows Live
/c/ProgramData/Oracle/Java/javapath
答案 0 :(得分:3)
使用netbeans(run&amp; debug),bash和DOS shell运行简单程序。 bash工作。 DOS shell提供了加载器无法找到的dll的名称(netbeans返回'?',这显然没用)。
基于DOS诊断消息,我发现Windows%PATH%和cygwin $ PATH环境之间存在差异(/ usr / lib / lapack在$ PATH中但在%PATH%中没有。修复路径修复了问题。
很抱歉浪费你的时间。