-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation errors #44
Comments
Oh I tried putting But, Avisynth doesn't see it: edit: I tried LoadPlugin() and LoadCPlugin(), no effect. I guess it must have built wrongly - here is the built file. It looks like the first make command autodetected my CPU as AMD - "-- Detected target processor as: AMD64". Is that correct? My CPU is Intel i5-4570. Are there some makefile switches I can set to tell it to try building a different version? Here is the successful second build output:
|
I think I need to tell GCC to include those dependencies in the compilation, but I don't know how |
According to a StackOverflow post I need to compile with flags: -static-libstdc++ -static-libgcc But I'm not sure how to do that -- do I need to modify the makefiles? |
Tried putting |
Are you using mingw built Avisynth+? Mingw and Windows-style DLLs are not ABI compatible. Plugin using C interface has no problems, but they are very rare. The real expert of MSys2/Mingw64 is @qyot27, I'd ask him. |
I'm using the current latest public release from the GitHub repository, so I guess that means no. I managed to include all those GCC dependencies in TIVTC.dll by putting But LoadPlugin("C:\TIVTC.dll") doesn't throw an error anymore, and the TIVTC.dll is bigger so I know it included those GCC dependencies. So I guess the GCC builds just aren't compatible with the public release build of Avisynth, so I probably have to use Visual Studio to compile it instead, have I got that right? How are you compiling it? |
Yes, mingw built C++ plugins are compatible only with mingw build Avisynth+. |
(As for mingw built DLL / Load error 126: The missing DLLs (standard c++ library, posix threads, library (but I don't think TIVTC is using that) are somewhere in your gcc directory. The command |
Using VS through the command-line CMake interface can be done by first launching the Visual Studio Command Prompt and specifying "Visual Studio XX 20YY" as the generator, where the XX and YY refer to whatever version of VS is being used (16 2019, for example). Overriding/appending CMAKE_CXX_FLAGS or CMAKE_SHARED_LINKER_FLAGS doesn't usually involve needing to edit CMakeLists.txt, as virtually every sort of thing you can But yes, as stated, GCC and MSVC use incompatible C++ ABIs and you can't mix and match host and plugins across compilers. And by default, GCC-built AviSynth+ actually looks in a completely different set of directories for plugins (plugins_gcc and plugins64_gcc), so as not to cause load errors. |
Thanks, a bit disappointing as I was trying to avoid using the Visual Studio GUI . I tried the 2019 Community version and it's ok but it only lets me compile the CLang version due to missing compilation tools. Guess I need the 2022 version? |
The solution and project files are set to v143 platform toolset, this is what vs2022 uses. For vs2019 go into config and change that to v142 toolset, that must be fine. |
I'm trying to make a small tweak/fix to TDecimate's hybrid=3 mode (details here) and have managed to set up the whole MSys2/Mingw64 environment just now for the first time.
The first of the two build commands seems ok:
But the second command fails:
The only thing that stands out to me is the last 3 lines "mingw32-make" - shouldn't that be mingw64?
Here are my installed MinGW packages btw:
Any help appreciated
The text was updated successfully, but these errors were encountered: