不能使用 MinGW static link ncurses
Cannot static link ncurses with MinGW
我正在使用 Arch Linux 并尝试使用 Windows 的 ncurses 库交叉编译一些代码。如果我让 MinGW 使用 .dll 动态 link 一切都很好,但是一旦我添加 -static
标志,我就会得到对所有 ncurses 函数的未定义引用(例如 __imp_initscr
或 __imp_stdscr
).我该如何解决?
我的编译命令是这样的:
x86_64-w64-mingw32-g++ test.cxx -O2 -s -lncursesw -o test
我通过查看 Brecht Sanders 提到的 headers 解决了这个问题。 header 定义了 __declspec(dllexport)
除非定义了 NCURSES_STATIC
,因此添加 -DNCURSES_STATIC
作为编译选项可以解决所有问题。
我正在使用 Arch Linux 并尝试使用 Windows 的 ncurses 库交叉编译一些代码。如果我让 MinGW 使用 .dll 动态 link 一切都很好,但是一旦我添加 -static
标志,我就会得到对所有 ncurses 函数的未定义引用(例如 __imp_initscr
或 __imp_stdscr
).我该如何解决?
我的编译命令是这样的:
x86_64-w64-mingw32-g++ test.cxx -O2 -s -lncursesw -o test
我通过查看 Brecht Sanders 提到的 headers 解决了这个问题。 header 定义了 __declspec(dllexport)
除非定义了 NCURSES_STATIC
,因此添加 -DNCURSES_STATIC
作为编译选项可以解决所有问题。