Finally, after whole day spent, I’ve made my CMake based project to successfully compile project on Windows(I’ve been developing it in Linux) and it even links well together, perfect isn’t it? Now I launch the program and boom, it’s not able to find dll libraries.
So, The problem:
I have CMake project with library and executable inside, that executable is using project’s library. I also have many third party libraries in project. It compiles and links well. When I try to launch it it prints error that project’s library wasn’t found. I’ve copied it to the executable’s directory. Now it prints that 3rd party library wasn’t found, I’ve copied all of them to exe’s dir. Now it prints that gcc’s library wasn’t found, so I’ve added C:\MinGW\bin to the path and now it launches fine.
But I feel it’s not the proper way. I’d like to spare my teammates(new) of that pain of launching.
Either link everything statically, or add necessary
install()calls into your CMakeLists.txt. Install all needed libs into the same directory and run executable from there.If you want to run executable from CMAKE_BINARY_DIR, you can
This would make CMake to put linked binaries into the same dir.
As for gcc runtime – there is no other way except copying dll or linking statically.