Skip to content
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

Static link for Windows plugins #94

Closed
pierreguillot opened this issue Feb 20, 2018 · 17 comments
Closed

Static link for Windows plugins #94

pierreguillot opened this issue Feb 20, 2018 · 17 comments

Comments

@pierreguillot
Copy link
Owner

I guess that using CMake, it would be now possible to statically link against libpd.

@pierreguillot
Copy link
Owner Author

@Lucarda and @alfonso73 I think I managed to statically link with pthread and libpd so you don't have to install any external library. It's great because it avoid possible conflicts with different pthread versions and/or libpd versions. Can you try it and confirm that it work?
CamomileWindows32.zip
CamomileWindows64.zip
That was the last thing I wanted to set up for v1.0.4, I can now, if it works, publish release.
Thanks!

@alfonso73
Copy link

That's great! Gonna try it right away! @pierreguillot and @Lucarda, can it be a good addition to Lucas' compiling instructions at this link?
http://puredata.info/docs/developer/win/WindowsMinGW

@alfonso73
Copy link

perfectly working here! and rock solid timing/latency it seems! great work @pierreguillot !!
with the next project that will add external libraries support is a dream coming true!

@pierreguillot
Copy link
Owner Author

Great! Thanks! I clean few things and publish the release in the next few days.

can it be a good addition to Lucas' compiling instructions at this link?

I use Microsoft Visual Studio to compile pd and libpd now so I don't know if it could help. My solution is simply to compile pthread and libpd with the right options for MSVC. Anyway pre-built dynamic pthread library is available online and I for Pd - as the library could be integrated in the Pd distribution - I guess it's not a problem.

@alfonso73
Copy link

Some torture testing for Camomile...
https://youtu.be/2BiKcu1L8xg

@alfonso73
Copy link

...and a little bug in MiniMock patch...
minimock patch error

@pierreguillot
Copy link
Owner Author

and a little bug in MiniMock patch...

It's fixed! Thanks!

@Lucarda
Copy link

Lucarda commented Mar 31, 2018

I'm having troubles with this one.

64-bit

Win10
Live9: not loading
Vsthost: not loading

32-bit

win8.1
live7: not loading
vsthost: loading but when placing additional dlls(1).

(1) All files (41 files, 1.89MB ) from DLLs\x86 --> from --> https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk

@alfonso73 :

Could you confirm if it still works if you uninstall the previous version?

@alfonso73
Copy link

alfonso73 commented Mar 31, 2018 via email

@pierreguillot
Copy link
Owner Author

@Lucarda can you use dependencywalker to see what is missing?

@Lucarda
Copy link

Lucarda commented Mar 31, 2018

@pierreguillot

I believe this version does not have the runtime statically linked.

This are missing on a win8.1 machine (with some corruption because I have c:\windows\system32\VCRUNTIME140.DLL):

API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
API-MS-WIN-CRT-CONVERT-L1-1-0.DLL
API-MS-WIN-CRT-ENVIRONMENT-L1-1-0.DLL
API-MS-WIN-CRT-FILESYSTEM-L1-1-0.DLL
API-MS-WIN-CRT-HEAP-L1-1-0.DLL
API-MS-WIN-CRT-LOCALE-L1-1-0.DLL
API-MS-WIN-CRT-MATH-L1-1-0.DLL
API-MS-WIN-CRT-MULTIBYTE-L1-1-0.DLL
API-MS-WIN-CRT-PROCESS-L1-1-0.DLL
API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL
API-MS-WIN-CRT-STDIO-L1-1-0.DLL
API-MS-WIN-CRT-STRING-L1-1-0.DLL
API-MS-WIN-CRT-TIME-L1-1-0.DLL
API-MS-WIN-CRT-UTILITY-L1-1-0.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL

This are missing on a win10 (not very up-to-date) machine, note that depwalker is not really for win10:

MSVCP140.DLL
VCRUNTIME140.DLL

API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
API-MS-WIN-CORE-APPCOMPAT-L1-1-0.DLL
API-MS-WIN-CORE-APPCOMPAT-L1-1-1.DLL
API-MS-WIN-CORE-APPINIT-L1-1-0.DLL
API-MS-WIN-CORE-ATOMS-L1-1-0.DLL
API-MS-WIN-CORE-COM-L1-1-0.DLL
API-MS-WIN-CORE-COM-L1-1-1.DLL
API-MS-WIN-CORE-COM-L1-1-2.DLL
API-MS-WIN-CORE-COM-MIDLPROXYSTUB-L1-1-0.DLL
API-MS-WIN-CORE-COM-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-COM-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-COMM-L1-1-0.DLL
API-MS-WIN-CORE-CONSOLE-L1-1-0.DLL
API-MS-WIN-CORE-CONSOLE-L2-1-0.DLL
API-MS-WIN-CORE-CONSOLE-L3-1-0.DLL
API-MS-WIN-CORE-CRT-L1-1-0.DLL
API-MS-WIN-CORE-CRT-L2-1-0.DLL
API-MS-WIN-CORE-DATETIME-L1-1-0.DLL
API-MS-WIN-CORE-DATETIME-L1-1-1.DLL
API-MS-WIN-CORE-DATETIME-L1-1-2.DLL
API-MS-WIN-CORE-DEBUG-L1-1-0.DLL
API-MS-WIN-CORE-DEBUG-L1-1-1.DLL
API-MS-WIN-CORE-DELAYLOAD-L1-1-0.DLL
API-MS-WIN-CORE-DELAYLOAD-L1-1-1.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-2.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-3.DLL
API-MS-WIN-CORE-FIBERS-L1-1-0.DLL
API-MS-WIN-CORE-FIBERS-L1-1-1.DLL
API-MS-WIN-CORE-FIBERS-L2-1-0.DLL
API-MS-WIN-CORE-FIBERS-L2-1-1.DLL
API-MS-WIN-CORE-FILE-L1-1-0.DLL
API-MS-WIN-CORE-FILE-L1-2-0.DLL
API-MS-WIN-CORE-FILE-L1-2-1.DLL
API-MS-WIN-CORE-FILE-L1-2-2.DLL
API-MS-WIN-CORE-FILE-L2-1-0.DLL
API-MS-WIN-CORE-FILE-L2-1-1.DLL
API-MS-WIN-CORE-FILE-L2-1-2.DLL
API-MS-WIN-CORE-FILE-L2-1-3.DLL
API-MS-WIN-CORE-HANDLE-L1-1-0.DLL
API-MS-WIN-CORE-HEAP-L1-1-0.DLL
API-MS-WIN-CORE-HEAP-L2-1-0.DLL
API-MS-WIN-CORE-HEAP-OBSOLETE-L1-1-0.DLL
API-MS-WIN-CORE-INTERLOCKED-L1-1-0.DLL
API-MS-WIN-CORE-IO-L1-1-0.DLL
API-MS-WIN-CORE-IO-L1-1-1.DLL
API-MS-WIN-CORE-JOB-L1-1-0.DLL
API-MS-WIN-CORE-JOB-L2-1-0.DLL
API-MS-WIN-CORE-KERNEL32-LEGACY-L1-1-0.DLL
API-MS-WIN-CORE-KERNEL32-LEGACY-L1-1-1.DLL
API-MS-WIN-CORE-KERNEL32-LEGACY-L1-1-2.DLL
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-2.DLL
API-MS-WIN-CORE-LARGEINTEGER-L1-1-0.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-1-0.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-2-1.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-2-2.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L2-1-0.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-2-0.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-2-2.DLL
API-MS-WIN-CORE-LOCALIZATION-L2-1-0.DLL
API-MS-WIN-CORE-LOCALIZATION-OBSOLETE-L1-2-0.DLL
API-MS-WIN-CORE-LOCALIZATION-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-MEMORY-L1-1-0.DLL
API-MS-WIN-CORE-MEMORY-L1-1-1.DLL
API-MS-WIN-CORE-MEMORY-L1-1-2.DLL
API-MS-WIN-CORE-MEMORY-L1-1-3.DLL
API-MS-WIN-CORE-MISC-L1-1-0.DLL
API-MS-WIN-CORE-NAMEDPIPE-L1-1-0.DLL
API-MS-WIN-CORE-NAMEDPIPE-L1-2-1.DLL
API-MS-WIN-CORE-NAMEDPIPE-L1-2-2.DLL
API-MS-WIN-CORE-NAMESPACE-L1-1-0.DLL
API-MS-WIN-CORE-NORMALIZATION-L1-1-0.DLL
API-MS-WIN-CORE-PATH-L1-1-0.DLL
API-MS-WIN-CORE-PERFCOUNTERS-L1-1-0.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-2-0.DLL
API-MS-WIN-CORE-PROCESSSNAPSHOT-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-1.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-2.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-3.DLL
API-MS-WIN-CORE-PROCESSTOPOLOGY-L1-1-0.DLL
API-MS-WIN-CORE-PROFILE-L1-1-0.DLL
API-MS-WIN-CORE-PSAPI-ANSI-L1-1-0.DLL
API-MS-WIN-CORE-PSAPI-L1-1-0.DLL
API-MS-WIN-CORE-PSM-KEY-L1-1-0.DLL
API-MS-WIN-CORE-QUIRKS-L1-1-0.DLL
API-MS-WIN-CORE-REALTIME-L1-1-0.DLL
API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL
API-MS-WIN-CORE-REGISTRY-L1-1-1.DLL
API-MS-WIN-CORE-REGISTRY-L1-1-2.DLL
API-MS-WIN-CORE-REGISTRYUSERSPECIFIC-L1-1-0.DLL
API-MS-WIN-CORE-RTLSUPPORT-L1-1-0.DLL
API-MS-WIN-CORE-SHLWAPI-LEGACY-L1-1-0.DLL
API-MS-WIN-CORE-SHLWAPI-OBSOLETE-L1-1-0.DLL
API-MS-WIN-CORE-SIDEBYSIDE-L1-1-0.DLL
API-MS-WIN-CORE-STRING-L1-1-0.DLL
API-MS-WIN-CORE-STRING-L2-1-0.DLL
API-MS-WIN-CORE-STRING-L2-1-1.DLL
API-MS-WIN-CORE-STRING-OBSOLETE-L1-1-0.DLL
API-MS-WIN-CORE-STRINGANSI-L1-1-0.DLL
API-MS-WIN-CORE-SYNCH-L1-1-0.DLL
API-MS-WIN-CORE-SYNCH-L1-2-0.DLL
API-MS-WIN-CORE-SYNCH-L1-2-1.DLL
API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL
API-MS-WIN-CORE-SYSINFO-L1-2-0.DLL
API-MS-WIN-CORE-SYSINFO-L1-2-1.DLL
API-MS-WIN-CORE-SYSINFO-L1-2-3.DLL
API-MS-WIN-CORE-SYSTEMTOPOLOGY-L1-1-0.DLL
API-MS-WIN-CORE-SYSTEMTOPOLOGY-L1-1-1.DLL
API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL
API-MS-WIN-CORE-THREADPOOL-LEGACY-L1-1-0.DLL
API-MS-WIN-CORE-THREADPOOL-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-TIMEZONE-L1-1-0.DLL
API-MS-WIN-CORE-URL-L1-1-0.DLL
API-MS-WIN-CORE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-VERSION-L1-1-0.DLL
API-MS-WIN-CORE-VERSION-L1-1-1.DLL
API-MS-WIN-CORE-VERSION-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-VERSIONANSI-L1-1-0.DLL
API-MS-WIN-CORE-VERSIONANSI-L1-1-1.DLL
API-MS-WIN-CORE-WINDOWSERRORREPORTING-L1-1-0.DLL
API-MS-WIN-CORE-WINDOWSERRORREPORTING-L1-1-1.DLL
API-MS-WIN-CORE-WINDOWSERRORREPORTING-L1-1-2.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-1.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-CORE-WOW64-L1-1-0.DLL
API-MS-WIN-CORE-WOW64-L1-1-1.DLL
API-MS-WIN-CORE-XSTATE-L2-1-0.DLL
API-MS-WIN-CRT-CONVERT-L1-1-0.DLL
API-MS-WIN-CRT-ENVIRONMENT-L1-1-0.DLL
API-MS-WIN-CRT-FILESYSTEM-L1-1-0.DLL
API-MS-WIN-CRT-HEAP-L1-1-0.DLL
API-MS-WIN-CRT-LOCALE-L1-1-0.DLL
API-MS-WIN-CRT-MATH-L1-1-0.DLL
API-MS-WIN-CRT-PRIVATE-L1-1-0.DLL
API-MS-WIN-CRT-PROCESS-L1-1-0.DLL
API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL
API-MS-WIN-CRT-STDIO-L1-1-0.DLL
API-MS-WIN-CRT-STRING-L1-1-0.DLL
API-MS-WIN-CRT-TIME-L1-1-0.DLL
API-MS-WIN-CRT-UTILITY-L1-1-0.DLL
API-MS-WIN-DEVICES-CONFIG-L1-1-1.DLL
API-MS-WIN-EVENTING-CLASSICPROVIDER-L1-1-0.DLL
API-MS-WIN-EVENTING-CONSUMER-L1-1-0.DLL
API-MS-WIN-EVENTING-CONSUMER-L1-1-1.DLL
API-MS-WIN-EVENTING-CONTROLLER-L1-1-0.DLL
API-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLL
API-MS-WIN-GDI-INTERNAL-UAP-L1-1-0.DLL
API-MS-WIN-MM-MISC-L1-1-0.DLL
API-MS-WIN-MM-MME-L1-1-0.DLL
API-MS-WIN-MM-TIME-L1-1-0.DLL
API-MS-WIN-SECURITY-APPCONTAINER-L1-1-0.DLL
API-MS-WIN-SECURITY-AUDIT-L1-1-0.DLL
API-MS-WIN-SECURITY-AUDIT-L1-1-1.DLL
API-MS-WIN-SECURITY-BASE-L1-1-0.DLL
API-MS-WIN-SECURITY-BASE-L1-2-0.DLL
API-MS-WIN-SECURITY-BASE-PRIVATE-L1-1-0.DLL
API-MS-WIN-SECURITY-CAPABILITY-L1-1-0.DLL
API-MS-WIN-SERVICE-CORE-L1-1-0.DLL
API-MS-WIN-SERVICE-CORE-L1-1-1.DLL
API-MS-WIN-SERVICE-CORE-L1-1-2.DLL
API-MS-WIN-SERVICE-MANAGEMENT-L1-1-0.DLL
API-MS-WIN-SERVICE-MANAGEMENT-L2-1-0.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-0.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-2.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-3.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-4.DLL
API-MS-WIN-SERVICE-WINSVC-L1-1-0.DLL
API-MS-WIN-SHCORE-PATH-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
API-MS-WIN-SHELL-SHELLCOM-L1-1-0.DLL
API-MS-WIN-SHELL-SHELLFOLDERS-L1-1-0.DLL
API-MS-WIN-STORAGE-EXPORTS-EXTERNAL-L1-1-0.DLL
API-MS-WIN-STORAGE-EXPORTS-INTERNAL-L1-1-0.DLL

@Lucarda
Copy link

Lucarda commented Mar 31, 2018

@pierreguillot

You might want to read this about JUCE that was pointed by IOhannes on a pd-lib-builder thread:

https://github.com/WeAreROLI/JUCE/blob/master/BREAKING-CHANGES.txt#L162-L199

@pierreguillot
Copy link
Owner Author

Thanks! Yes, I used the dynamic runtime library (MD) but I tried on a Windows 7 machine and it worked so I thought it was good. But VS2015 SDK must be installed on this machine so I guess the game is rigged. I used to think that the static runtime library could generate conflicts but after reading this JUCE's article and further discussion on the web, I guess it's not really a problem. So I compiled everything (pthread+libpd+camomile) with the static runtime library (MT). I tried on my Windows 7 machine and it works well. If both of you could give a try it would be great! I hope this is the good one :) And thanks a lot I would have never achieved to compile the Windows plugin without your help!

CamomileWindows32.zip
CamomileWindows64.zip

@Lucarda
Copy link

Lucarda commented Mar 31, 2018

Good!

They worked.

  • Win8.1
    live7 (32bit)

  • Win10
    live9 (64bit)

:)

@pierreguillot
Copy link
Owner Author

Great! Thanks!

@alfonso73
Copy link

Working here too...but i guess is not critical because even previous version was working form me...maybe i have something installed that supply the right libs...

@pierreguillot
Copy link
Owner Author

Thanks a lot !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants