Generally, 'negative' conditionals are a bad idea. Should be positives instead. Also, _WIN32 is the host system, whereas the linking issue is a target one. In this case, the conditional should be:
```
#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_OPENBSD || TARGET_SOLARIS
```