This shows you the differences between two versions of the page.
Next revision | Previous revision Next 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:12] 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: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|}} | ||
- | == 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 20: | ||
---- | ---- | ||
- | ====== Cli : Compile the sample using MSYS2/MinGW ====== | + | ====== Compile it ====== |
It is best to start here to make sure you have a working environment | It is best to start here to make sure you have a working environment | ||
Line 38: | Line 28: | ||
mkdir build && cd build | mkdir build && cd build | ||
then generate the makefile | then generate the makefile | ||
- | cmake -G "MSYS Makefiles" -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_INSTALL_PREFIX="c:\Program Files\Avidemux 2.6 - 64 bits" .. | + | 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__ | __The CMAKE_INSTALL_PREFIX should point to the place where avidemux is__ | ||
Line 47: | Line 37: | ||
Start avidemux and you should see a logo_sample filter in the menu list | 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 : | + | 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) | + | |
- | + | ||
- | + | ||
- | ---- | + | |
- | ====== 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 | ||