[zeromq-dev] Building ZeroMQ 2.2.0 with OpenPGM on Win7 64

Dimiter 'malkia' Stanev malkia at gmail.com
Thu Apr 12 01:15:17 CEST 2012


Hi Nick,

I have OpenPGM compiled with Windows WDK 7600 (7.1) targeting MSVCRT.DLL 
both 32-bit and 64-bit .DLL

I also have import .LIB file for ease of use

This was all synced to #1458 with just a little .diff to get it 
compiling using WDK.

Here are the precompiled libs:

https://github.com/malkia/ufo/tree/master/bin/Windows/x86
and
https://github.com/malkia/ufo/tree/master/bin/Windows/x64

Look for PGM.DLL, PGM.LIB, PGM.PDB

There is also ZMQ.DLL, ZMQ.LIB, ZMQ.PDB there that explicitly links to 
PGM.DLL (expect it to be in the same folder)

But the ZeroMQ lib might be a bit out of date (month or two).

Thanks,
Dimiter 'malkia' Stanev

On 4/10/2012 11:22 PM, Nick Eriksson wrote:
> This one helped, after manually building on OpenPGM, libzmq also built
> nicely. Now I'm struggling with an error message saying MSVCR90D.dll
> cannot be found on my computer, when I try to build pyzmq.. So when I
> build libzmq withOpenPGM it is DEBUG mode, right? But that file is on my
> computer, as I have VS2008 express installed.. I have tried to turn off
> incremental linking, but that didn't help.
>
> On Tue, Apr 10, 2012 at 2:18 PM, Steven McCoy <steven.mccoy at miru.hk
> <mailto:steven.mccoy at miru.hk>> wrote:
>
>     On 10 April 2012 06:56, Nick Eriksson <nick26 at gmail.com
>     <mailto:nick26 at gmail.com>> wrote:
>
>         Thanks for the heads up, but apparently when you choose to
>         buildWithPgm it includes the libpgm.lib to Additional depencies
>         section under Linker - Input. So I believe that VS is looking
>         for correct files in correct places, libpgm.lib in "C:\Program
>         Files (x86)\OpenPGM 5.1.118\lib".
>
>
>     OpenPGM includes a pragma to pull in the required files, you only
>     need to point the correct library path.  The defaults used to be
>     suitable for Jenkins build server and probably need updating for a
>     manual build.
>
>     --
>     Steve-o
>
>     _______________________________________________
>     zeromq-dev mailing list
>     zeromq-dev at lists.zeromq.org <mailto:zeromq-dev at lists.zeromq.org>
>     http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
Index: pgm/include/impl/security.h
===================================================================
--- pgm/include/impl/security.h	(revision 1458)
+++ pgm/include/impl/security.h	(working copy)
@@ -19,6 +19,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#undef _CRT_SECURE_NO_WARNINGS
+
 #if !defined (__PGM_IMPL_FRAMEWORK_H_INSIDE__) && !defined (PGM_COMPILATION)
 #	error "Only <framework.h> can be included directly."
 #endif
@@ -115,9 +117,11 @@
 			str[size - 1] = 0;
 		return retval;
 	}
+	{
 	const int retval = _vsnprintf (str, count + 1, format, ap);
 	str[count] = 0;
 	return retval;
+	}
 #else
 	return _vsnprintf_s (str, size, count, format, ap);
 #endif
@@ -141,7 +145,7 @@
 	return retval;
 }
 
-static inline
+/*static inline
 int
 pgm_sscanf_s (const char *buffer, const char *format, ...)
 {
@@ -152,7 +156,8 @@
 	retval = vsscanf (buffer, format, ap);
 	va_end (ap);
 	return retval;
-}
+	}*/
+#define pgm_sscanf_s sscanf
 #else
 #	define pgm_snprintf_s		_snprintf_s
 #	define pgm_sscanf_s		sscanf_s
Index: pgm/include/pgm/atomic.h
===================================================================
--- pgm/include/pgm/atomic.h	(revision 1458)
+++ pgm/include/pgm/atomic.h	(working copy)
@@ -75,7 +75,7 @@
 	return __sync_fetch_and_add (atomic, val);
 #elif defined( _WIN32 )
 /* Windows intrinsic */
-	return _InterlockedExchangeAdd ((volatile LONG*)atomic, val);
+	return InterlockedExchangeAdd ((volatile LONG*)atomic, val);
 #else
 #	error "No supported atomic operations for this platform."
 #endif
@@ -109,7 +109,7 @@
 /* interchangable with __sync_fetch_and_add () */
 	__sync_add_and_fetch (atomic, val);
 #elif defined( _WIN32 )
-	_InterlockedExchangeAdd ((volatile LONG*)atomic, val);
+	InterlockedExchangeAdd ((volatile LONG*)atomic, val);
 #endif
 }
 
@@ -139,7 +139,7 @@
 #elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
 	pgm_atomic_add32 (atomic, 1);
 #elif defined( _WIN32 )
-	_InterlockedIncrement ((volatile LONG*)atomic);
+	InterlockedIncrement ((volatile LONG*)atomic);
 #endif
 }
 
@@ -170,7 +170,7 @@
 #elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
 	pgm_atomic_add32 (atomic, (uint32_t)-1);
 #elif defined( _WIN32 )
-	_InterlockedDecrement ((volatile LONG*)atomic);
+	InterlockedDecrement ((volatile LONG*)atomic);
 #endif
 }
 


More information about the zeromq-dev mailing list