我有使用VC ++构建的库。我想在程序中使用相同的库并在cygwin gcc编译器中构建。这种情况会起作用吗?
答案 0 :(得分:1)
由于C ++没有标准化的ABI,并且因为Visual C ++和g ++几乎肯定会有不同的ABI,所以我认为你不能这样做。你唯一真正的选择是将自己限制在C而不是C ++。
编辑:如果您使用的所有库都是直接C(extern "C"
,用C ++术语),那么您应该能够在编译器之间共享库。 (否则,您的Cygwin和MinGW应用程序无法调用Windows API。)您需要小心匹配调用约定。例如,Windows API使用__stdcall
而不是标准C调用约定。您可以告诉GCC哪个调用约定与function attributes一起使用。 Google和您图书馆的头文件应该有更多关于调用约定的信息。
答案 1 :(得分:0)
可能不是
有mingw个GCC的端口(以及许多gnu工具)到windows,它使用标准的windows库 - 它几乎可以替代cygwin,并且应该更容易链接到gcc。