0

我有一个基于 wxwidgets 的应用程序,使用 boost 和 pcre lib。在 makefile 中,我通常必须使用 CXXFLAGS 变量等来放置编译器和链接器路径。

我写了这个:

CXXFLAGS := -I. -I/path/boost/prod -I/path/pcre/include $(shell path/wxWidgets/bin/wx-config  --unicode=yes --static=yes --cxxflags) -DPCRE_STATIC -O3

CPPFLAGS := -I. -I/path/boost/prod -I/path/pcre/include $(shell path/wxWidgets/bin/wx-config --unicode=yes --static=yes --cppflags) -DPCRE_STATIC -O3

LDFLAGS := -L. -L/path/pcre/lib -L/path/wxWidgets/lib $(shell $path/wxWidgets/bin/wx-config --unicode=yes --static=yes --optional-libs html,aui,stc,xml,adv,core,base) -lpcre -O3
    EXEC_POST

根据我现在的情况,wx-config 告诉我需要哪些库。

当我尝试链接我的编译文件时,链接器会因为找不到例如库“gio-2.0”而出错,这是 wx-config 声明的库之一。我现在可以手动安装所有未找到的库并且它可以工作,但通常所有这些需要的库都应该是 wxwidgets 的一部分......我想我搞砸了上面编写的 makefile 配置中的部分。你怎么看?

4

1 回答 1

1

您应该使用--libs而不是--optional-libs.

此外,您不需要显式-L/path/wxWidgets/lib,这已经由 . 输出wx-config

于 2013-11-14T14:43:24.490 回答