<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hello all,<div class=""><br class=""></div><div class=""><br class=""></div><div class="">I’m having some strange issues on osx when trying to link a C library module. I’ve successfully did this before with another library, however, for some reason this one doesn’t work.</div><div class="">My module map looks like this:</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">module</span> CFCGI [system] {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(232, 35, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">header</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span>"/usr/local/include/cfcgi/cfcgi.h"</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(232, 35, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">link</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span>"cfcgi"</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""> <span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">export</span> *</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class="">}</div></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-family: Helvetica; font-size: 12px;" class="">And the output:</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal;" class=""><div style="margin: 0px; line-height: normal;" class="">swift build</div><div style="margin: 0px; line-height: normal;" class="">Compiling Swift Module 'April' (1 sources)</div><div style="margin: 0px; line-height: normal;" class="">Linking Executable: .build/debug/April</div><div style="margin: 0px; line-height: normal;" class="">Undefined symbols for architecture x86_64:</div><div style="margin: 0px; line-height: normal;" class=""> "_cfcgi_create", referenced from:</div><div style="margin: 0px; line-height: normal;" class=""> _main in main.swift.o</div><div style="margin: 0px; line-height: normal;" class=""> "_cfcgi_free", referenced from:</div><div style="margin: 0px; line-height: normal;" class=""> _main in main.swift.o</div><div style="margin: 0px; line-height: normal;" class=""> "_cfcgi_start_and_wait", referenced from:</div><div style="margin: 0px; line-height: normal;" class=""> _main in main.swift.o</div><div style="margin: 0px; line-height: normal;" class="">ld: symbol(s) not found for architecture x86_64</div></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">It looks like the linker ignores the `link "cfcgi”` part. </div><div style="margin: 0px; line-height: normal;" class="">I tried lots of things but failed to find the reason behind this. I’m starting to think this might be related to this paragraph in the clang docs:</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">"Automatic linking with the link directive is not yet widely implemented, because it requires support from both the object file format and the linker. The notion is similar to Microsoft Visual Studio’s #pragma comment(lib…).”</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Unfortunately I find it a little vague and I can’t know for sure if it applies here.</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">So far, this is what I know for sure:</div><div style="margin: 0px; line-height: normal;" class="">- libcfcgi.a is in /usr/local/lib and it’s compiled for x86_64</div><div style="margin: 0px; line-height: normal;" class="">- libcfcgi.a contains the above mentioned symbols, tested it with nm and linked it in a small C program </div><div style="margin: 0px; line-height: normal;" class="">- I’m on osx and build with the swift-2.2-SNAPSHOT-2015-12-01-a toolchain</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Any input on this would be greatly appreciated!</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Valentin Radu</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div></body></html>