This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
build:devel_2.6_msvc [2018/01/01 12:10] mean |
build:devel_2.6_msvc [2018/01/01 12:17] mean |
||
---|---|---|---|
Line 3: | Line 3: | ||
You dont need to compile avidemux yourself to write your own plugins.\\ | You dont need to compile avidemux yourself to write your own plugins.\\ | ||
What you need is : | What you need is : | ||
- | * Avidemux installed on your system | + | * Avidemux installed on your system , the version built with visual c++ |
- | * SDK component activated | + | |
* CMake > 3.x | * CMake > 3.x | ||
* Optionnaly MSys installed, it's just simpler | * Optionnaly MSys installed, it's just simpler | ||
* Visual c++ 2015 or 2017, Community edition is fine | * Visual c++ 2015 or 2017, Community edition is fine | ||
* A demo/sample video filter, available here {{ :build:videofilter.zip |}} | * A demo/sample video filter, available here {{ :build:videofilter.zip |}} | ||
- | |||
- | == SDK === | ||
- | Make sure you have selected the SDK component during install | ||
- | |||
- | {{:build:sdk1r.png?200|}} | ||
- | |||
Line 25: | Line 18: | ||
---- | ---- | ||
- | ====== Cli : Compile the sample using MSYS2/MinGW ====== | + | ====== Let's go ====== |
- | It is best to start here to make sure you have a working environment | + | Start a command prompt |
+ | Call the vcvars64.bat from visual c++ binary dir, that will set up things | ||
+ | Then start msys bash.exe shell | ||
- | Start a MSYS2 shell, go where you unzipped the demo code (i.e. c:\tmp\videoFilterDemo for example )\\ | + | Go to the source folder of the demo and create the sln file |
- | Create a build folder | + | mkdir build |
- | mkdir build && cd build | + | cd build |
- | then generate the makefile | + | cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX="c:/Program Files/Avidemux 2.7 - 64bits" -DVERBOSE=True -DCMAKE_BUILD_TYPE=Release .. |
- | cmake -G "MSYS Makefiles" -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_INSTALL_PREFIX="c:\Program Files\Avidemux 2.7 - 64 bits" .. | + | |
- | + | ||
- | __The CMAKE_INSTALL_PREFIX should point to the place where avidemux is__ | + | |
- | Look for error, it should go without problem.\\ | ||
- | make | ||
- | Upon success, copy the dll in c:\Program Files\Avidemux 2.6 - 64 bits\plugins\videoFilters\ \\ | ||
- | Start avidemux and you should see a logo_sample filter in the menu list | ||
- | Alternatively, run the install target in Visual C++ | + | Look for error, it should go without problem. |
- | **Important/Common problem** | + | If you dont want to use visual C++ ide , you can just |
- | ---- | + | |
+ | cmake --build . --target INSTALL | ||
- | If the C++ library used by mingw is more recent than the one used by avidemux itself you'll run into two problem : | + | You can now load the generated .sln into visual c++ |
+ | Either copy the resuling dll file into the plugin subfolder of avidemux install or, alternatively, run the install target in Visual C++ | ||
- | * If you have error undefined symbol _imp_xxxxstdcxx11xxxxbasic_stringxxx when compiling , add one line at the very top of CMakeLists.txt | + | **Important/Common problem** |
- | ADD_DEFINITIONS(-D_GLIBCXX_USE_CXX11_ABI=0) | + | |
- | * If you have error at startup "Cannot locate xyz in libsdtc+++", Overwrite the libstdc++-6.dll in the avidemux folder with the one from mingw, e.g. c:\Mingw64\mingw64\bin\libstdc++-6.dll | + | |
- | Do the fixes above, erase the build folder (build/*) and do it all over again (it takes 5 sec) | ||
+ | You cannot mix binaries built with Visual C++ and built with Mingw/g++ | ||
+ | It will *NOT* work. Don't even try. | ||