Netbeans 8.0.2 returns “During startup program exi

2019-07-19 15:34发布

问题:

Win 7 Netbeans 8.0.2 cygwin gcc 4.8.3 /usr/lib/libgsl.dll.a /usr/lib/libgslcblas.dll.a

In the debugger I crash with the error above. Without the debugger I crash with " error while loading shared libraries: ?: cannot open shared object file: No such file or directory"

I've researched this and I think that this is a failure to link to some external library. the only external library I have is for the Gnu Scientific Library (libgsl.dll.a). From reading other questions I have put a link to the location of library in both my Windows %PATH% variable and my bash $PATH. There is a /bin/cyggsl-0.dll and /bin/cyggslcblas-0.dll in /bin and I have put a reference to this directory in %PATH also.

Commenting out the reference to the gsl Netbeans compiles and runs correctly.

How can I get Netbeans to find the gsl DLL? Assuming gsl links to a library and that this library is not found, how can I find out what gsl wants in Netbeans? The gsl library is a C library (translated from Fortran), so there might be some residual nonsense going on, but I'm stumped.

Simple Program With Problem

# 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

回答1:

The simple program was run with netbeans (run & debug), bash and a DOS shell. bash worked. The DOS shell provided the name of the dll that the loader was unable to find (netbeans returned '?' which is decidedly not useful).

Based on the DOS diagnostic message I found a difference between the Windows %PATH% and the cygwin $PATH environment (/usr/lib/lapack was in $PATH but not in %PATH%. Fixing the path fixed the problem.

Sorry to waste your time folks.



标签: c++ c netbeans dll