我正在制作基本的角色扮演游戏。我希望静态包含Boost库,以便运行我的游戏的人不需要它们。我研究并查找了你要做的就是将-static
添加到命令行编译中,所以我的命令是这样的:
$ g++ -static -o karthas *.o -lncurses -lmenu -lboost_system -lboost_filesystem
但显然-static
正在影响ncurses。我收到了一大堆错误,其中大部分错误都是对'SP'的未定义引用。
是否可以只进行Boost的静态链接而不是ncurses?我该怎么做呢?
答案 0 :(得分:4)
您可以选择静态链接哪些库,以及通过在其名称前添加-Wl,-static
或-Wl,-Bdynamic
来动态链接哪些库。
例如,使用:
g++ -o karthas *.o -Wl,-static -lmenu -lboost_system -lboost_filesystem -Wl,-Bdynamic -lncurses
菜单,boost_system和boost_filesystem库将静态链接并动态进行ncurses。
(但你也可以用你的可执行文件分发boost dlls,而不是静态链接任何东西)。
答案 1 :(得分:0)