This shows you the differences between two versions of the page.
Next revision | Previous revision Last revision Both sides next revision | ||
build:devel_2.6_msvc [2018/01/01 12:08] mean created |
build:devel_2.6_msvc [2018/01/01 12:28] mean |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Writing your own plugins, CLI and Netbeans Setup (Windows) ====== | + | ====== Writing your own plugins, Visual C++ 2015 or 2017 ====== |
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 and mingw64-32 or 64 installed [[https://cmake.org/download/|CMake]] | + | * Optionnaly MSys installed, it's just simpler |
- | * Msys2 installed [[https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/|MSYS]] | + | * Visual c++ 2015 or 2017, Community edition is fine |
- | * Mingw64 installed [[http://mingw-w64.org/doku.php/download/mingw-builds|MinGW64]] | + | * A demo/sample video filter, available here {{ :build:videofilterdemo_2.7.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|}} | ||
- | |||
- | == Msys2 and Mingw64 setup === | ||
- | |||
- | {{:build:mingw64_setup.png?200|}} | ||
- | |||
- | It is a good idea to use a short path, i.e. c:\MingW64 and c:\msys64 | ||
- | Make sure you have them both in your path (i.e. c:\Mingw64\mingw64\bin and c:\msys64\usr\bin) | ||
== Cmake == | == Cmake == | ||
Line 30: | 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.6 - 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 | ||
- | **Important/Common problem** | ||
- | ---- | ||
- | If the C++ library used by mingw is more recent than the one used by avidemux itself you'll run into two problem : | + | Look for error, it should go without problem. |
- | * If you have error undefined symbol _imp_xxxxstdcxx11xxxxbasic_stringxxx when compiling , add one line at the very top of CMakeLists.txt | + | If you dont want to use visual C++ ide , you can just |
- | 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 | + | cmake --build . --target INSTALL |
- | Do the fixes above, erase the build folder (build/*) and do it all over again (it takes 5 sec) | + | If you want ot use the visual C++ ide, you can also load the generated .sln into visual c++ |
+ | When the build is over, either copy the resulting dll file into the plugin subfolder of avidemux install or, alternatively, run the install target in Visual C++ | ||
- | ---- | + | **Important/Common problem** |
- | ====== Using Netbeans ====== | + | |
- | + | ||
- | You'll need the same requirement as above (i.e. cmake, msys,...)\\ | + | |
- | You *MUST* add msys make, mingw make will not work with netbeans\\ | + | |
- | Open a msys2 shell, and enter\\ | + | |
- | pacman -S make | + | |
- | + | ||
- | + | ||
- | == Configure Netbeans == | + | |
- | + | ||
- | + | ||
- | There are two parts : | + | |
- | * Configure the toolchain | + | |
- | * Configure the project | + | |
- | + | ||
- | The toolchain should be configured as follow :\\ | + | |
- | {{:build:netbeans_toolchain.png?200|Toolchain}}\\ | + | |
- | The important part is to select the make from msys64/usr/bin | + | |
- | + | ||
- | + | ||
- | Everything is coming from msys, the screenshot is a bit old | + | |
- | + | ||
- | Last step is to setup the project :\\ | + | |
- | {{:build:netbeans_project1.png?200|Step 1}} \\ | + | |
- | {{:build:nb_2.png?200| Step2}} \\ | + | |
- | {{:build:nb_5.png?200|Step 3}} \\ | + | |
- | + | ||
- | The important part are : | + | |
- | * At step2 select custom | + | |
- | * At step3, add \\ | + | |
- | + | ||
- | + | ||
- | -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX="c:/Program Files/Avidemux 2.6 - 64 bits"" | + | |
- | + | ||
- | Note that the path separator are "/" and not "\"! | + | |
- | {{:build:sdk_netbeans_cmake_option.png?200|}} | ||
- | You can build the sample now. | + | You cannot mix binaries built with Visual C++ and built with Mingw/g++ |
+ | It will *NOT* work. Don't even try. | ||
- | In case you made a mistake, dont forget to delete the CMakeCache.txt file before retrying | ||