我有一个基于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配置中的部分。你觉得怎么样?
答案 0 :(得分:1)
您应该使用--libs
代替--optional-libs
。
此外,您不需要明确的-L/path/wxWidgets/lib
,这已由wx-config
输出。