我需要做的就是让MinGW与Postgres交谈。我考虑了几种选择:

  • 使用libpq。 Windows的Postgres随附的libpq.lib可以链接,但是当我使用该库时会崩溃。我认为是因为它是为VC++编译的。我找不到libpq代码,所以我不得不在MinGW中重新编译整个Postgres树。不容易。
  • 使用libpqxx。需要libpq!
  • 使用libodbcxx。需要某种iodbc之类的ODBC管理器。也许我可以直接使用iodbc。由于现在仅是Windows,我可以在链接器上使用-lodbc并使用某些Windows特定命令吗?

  • 选项1听起来最不痛苦。我很确定该项目将使用Postgres,但不太确定该项目是否将保留在Windows上。有没有简单的方法来获得此功能?

    最佳答案

    如果需要,可以只重建libpq。运行“./configure”,然后仅在src / interfaces / libpq中运行“make”。

    但是实际上,msvc构建的libpq应该可以与mingw一起正常工作。这只是一个标准的Windows DLL。 .lib可能是一个问题-但DLL应该没问题。 AFAIK,仅PQtrace()功能将被破坏-由于MSVCRT的工作方式,仅当您具有完全相同的运行时版本时,此功能才有效。

    如果.LIB不起作用,您还应该能够直接从DLL生成导入库。还是MingW甚至允许您直接链接到DLL-参见其wiki

    使libpq正常工作可能比odbc容易得多。

    关于c++ - 从MinGW程序调用Postgres的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1353161/

    10-11 21:26