opencv .dll files not found - c++

I am running windows 8 64 bit and using Code::Blocks as well as Eclipse as IDE for OpenCV v.2.4.4.
I am following the online tutorial at http://docs.opencv.org/doc/tutorials/core/basic_linear_transform/basic_linear_transform.html#basic-linear-transform
Whenever I include .dll.a files in opencv\build\x64\mingw\lib\ as well as required headers in opencv\build\include in my IDE settings and corresponding opencv\build\x64\mingw\bin in my PATH variable, I get compile time errors about undefined reference to opencv functions.
Whenever I include the corrosponding 32 bit dll files in my IDE settings and set 32 bit dll files' path in my PATH variable, the program compiles fine. But, when I open the .exe file, it says that 'libopencv_core244.dll is missing from your computer. Re-install the application.' The PATH variable being set correctly, I don't understand the problem..
I am digging up about this on the web as much as I can but still unable to fix this...please help...

Rebooting after updating the PATH variable worked!

Related

Missing libgcc_s_seh-1.dll starting the .exe on Windows

Intro
I have a CMake-based C++ project. Until now I build and ran the project via CLion. Everything worked fine until I tried to run the .exe-file directly (not via CLion).
Problem
When I navigate to the cmake build directory in order to start my program via the executable file, it fails with the following message in the popup: Cannot continue the code execution because libgcc_s so-1.dll was not found. Reinstalling the program may resolve the issue.
I have the following questions
If I interpret the error message correctly, then this dll is missing on my computer. So I ask myself, why does my program still work when I start it via the development environment (CLion), although the error message expressly states that the source code requires this dll?
Is it the fault of my application/source code that the error appears or rather the current state of my computer? If the former, how can I prevent this error from appearing for other users?
What is the best way to fix this error? It's obvious that I need to download this dll, but where is the best place to put it (which directory and environment variable to use on Window)?
Which source is trustworthy to download this dll? I don't want to download any malware under this dll-name.
Optional: What kind of library is that? What functionalities does it offer?
Additional information
I use CMake as my build tool, CLion as the IDE and MinGW as the compiler.
What I have did so far?
I made sure it still works through the IDE.
I found this dll does not exist in the MinGW installation folder.
I searched the web for more information. Unfortunately, there are only pages unknown to me that only offer the download of this dll. That doesn't satisfy me.
I found the cause of my problem: I had two MingGW installations on my machine. Once the installation that comes with CLion and a separate one. The latter did not have the required dll. However, CLion used its own installation, which in turn owns the DLL. So the solution was to remove the separate installation and include the path to the CLion installation's bin/ directory in the PATH environment variable.
This file is part of MinGW-w64 when using SEH as exception model (as opposed to Dwarf or SJLJ). You need to distribute the .dll files your .exe file(s) depend on in the same folder as the .exe file(s).
If you don't have that file, then you probably have been using libraries compiled with different versions of GCC/MinGW(-w64). I recommend building everything with the same compiler to ensure stable binaries.
Tools like Dependency Walker can help you figure out which .dll files your .exe file depends on.
Or use the command line tool copypedeps -r from https://github.com/brechtsanders/pedeps to copy the .exe files along with it's dependencies.

Zbar in CPP Project libiconv.lib not found

Hello I try to integrate Zbar 64bit version into my visual studio cpp project. I downloaded the build from https://github.com/NaturalHistoryMuseum/ZBarWin64 and I set up my IncludePath to both include and \zbar\include also included both libs lib + zbar\lib-64. The linker was also set to 64 version but now I'm getting an error.
The code execution cannot proceed because libiconv.dll was not found. Reinstalling the program may fix this problem.
I already set the linker and lib path to the folder where the dll is. But still getting the error.
Any suggestions?
Kind regards
Max
Added ZBarWin64-master\zbar\libiconv to system variables PATH.
Added ZBarWin64-master\zbar\libiconv\dll_x64 to system variables PATH.
Don't know what fixed it, but now it is running like a charm :)

Compile C++ with netbeans

I'm currently making a small C++ program for my friends. I'm using Netbeans in school for Java and wanted to use Netbeans for C++ too (I want to use the same IDE for everything).
Now when I run my program in netbeans, it works perfectly in the IDE. But when I try to compile my program I can't seem to find the .exe file. I can only find the debug .exe file, which I can't run because I miss 3 .dll files (cygstdc++-6.dll, cygwin1.dll and cyggcc_s-seh-1.dll)
Am I doing something wrong? I can't seem to find the problem at this moment
thx for the help
If you want to have release .exe - you need to compile in Release mode instead of Debug
Regarding the issue with missing files:
My assumption is that Netbeans has a built-in compiler (which from your explanation appears to be one within cygwin environment). Having it built-in simply means that the IDE knows a path to all the sources (.dll) and header files
When you try to run the .exe out of the IDE - your executable cannot find these libraries (cygstdc++-6.dll, cygwin1.dll and cyggcc_s-seh-1.dll) because they're not set in the environment variables and are not visible from the executable's folder. (I expect, that the path to these .dlls is not hardcoded)

SDL.dll is missing from my computer - VS 2010

I'm trying to compile a SDL-program I've written, but when I do, this error shows up:
The program can't start because SDL.dll is missing from your computer.
Try reinstalling the program to fix this problem
I have no idea as to why. I have SDL.dll.
I have put it in the correct folder: C:\Windows\System32.
I have the correct PATHS to all the SDL headers and such as well.
VS says:
Build succeeded: 1
and THEN the error above pops up on screen.
Add it into your debug folder or whatever directory your program is currently located at.
SDL.dll has to either be in the same directory as your application, or in a directory that's in the PATH environment variable.
IfSDL.dll is 32-bit and you're running a 64-bit system you have to place the dll into /Windows/SysWOW64/ rather than /Windows/System32/, which is used for 64-bit dlls.
EDIT:
You probably shouldn't be deploying your DLLs by copying them into the System32 directory, unless they're common libraries that are used by several applications, and even then I would use discretion. For example, an application could update the DLL, which could break other applications that rely on an older version of the library.
Instead, copy the DLLs into the same directory that the executable is being built in. If you're building and executing with Visual Studio it will look for the DLL in the Project directory, where your source files are probably located.
Just place your SDL.dll in the same folder and your problem will be solved.
And to answer to your problem with the PATH, you can specify in visual studio where he will look for executables while debugging. Maybe this isn't set correctly and that's why VS can't find SDL.dll?

freeglut.dll missing

I am reading the OpenGl superbible, and on the very first triangle program it will not run.
the program compiles just fine but when i run it, it gave me the error message freeglut.dll is missing from your computer. I downloaded that and put it in the correct directory, and it said that MSVCR71.dll was missing, so i downloaded that and put it in the correct directory and it began to say "The procedure entry point __glutCreateWindowWithExit could not be located in the dynamic link library freeglut.dll." does anyone know what i am doing wrong? i followed all the directions that the book told me.
You can't just grab random DLLs off the interwebtubes and dump them on your PC. There are versioning issues to consider that you're completely bypassing. It should have been a hint when the MSVC runtime dependency didn't link up.
Install the freeGLUT package properly, in its entirety.
I have had the same problem. Follow these steps:
Assuming that you have performed all steps given in the book.
Download the source code from companion siteā€¦I think the folder is SB5 and its 92 MB.
Then build the project named 'freeglut.vcproj'.
It will produce freeglut.dll apart from other files.Put freeglut.dll into c:\windows\syswow64 folder and all is done.
You could just include the dll wherever your executable is, if you are running this MSVC, then you could for example put the dll inside of your Debug folder. Cleaning the folder would remove everything except that dll so you wouldnt have to worry about constantly recopying it. Furthermore, if you want an alternative solution you could just put the dll inside of you Windows/System32 folder, or in the case of 64 bit architectures you could put it inside of the System/SysWow64 folder
The freeglut.dll should be placed in the VS project folder. The dll is part of the MSVC package - http://www.transmissionzero.co.uk/software/freeglut-devel/
Isn't there any options on the compiler where you can link the libraries? For example, if you use DevC++, you should go to Project -> Project Options -> Parameters, and set the Linkers.