1

我在安装 FLTK 套件后尝试编译 hello world .cpp 时遇到此链接器错误。如果您注意到库名称来自 stroustrup 书“编程原理与实践”中附录 D 中的安装。版本是2012,但是现在FLTK版本好像有点不一样了,比如书上推荐下载的版本是FLTK 1.1.(?),最新的是1.3.2。我认为链接器问题在我放置的项目/属性/链接器/输入/附加依赖项选项卡下的 VC++ 项目中(根据附录 d)

fltk.lib 
wsock32.lib 
comctl32.lib 
fltkjpegd.lib 
fltkimagesd.lib

但是我从 fltk lib 文件夹复制的 .lib 文件没有这些名称。它们被命名为:

fltkzlibd
fltkpngd
fltkjpegd
fltkimagesd
fltkformsd
fltkgld
fltkd

这些 .lib 文件是否包含在项目/属性/链接器/输入/附加依赖项选项卡下的 VC++ 项目中?如果没有,我还能如何解决这个烂摊子?

    1>------ Build started: Project: test, Configuration: Debug Win32 ------
1>  test.cpp
1>LINK : fatal error LNK1104: cannot open file 'fltk.lib wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

#include <FL/Fl.H>
#include <FL/Fl_Window.H>  
#include <FL/Fl_Box.H>  

int main(int argc, char **argv)   
{  
  Fl_Window *window = new Fl_Window(300,180);  
  Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!");  
  box->box(FL_UP_BOX);  
  box->labelsize(36);  
  box->labelfont(FL_BOLD+FL_ITALIC);  
  box->labeltype(FL_SHADOW_LABEL);  
  window->end();  
  window->show(argc, argv);  
  return Fl::run();  
}  
4

1 回答 1

0

包括调试版本的那些 lib 文件。发布版本没有尾随 d。

对于链接,使用 ws2_32.lib 而不是 wsock32.lib。

添加其他依赖项时,您是否单击省略号,然后在对话框中在一行中输入所有库名称?它们需要在单独的行中输入。

于 2013-12-28T23:55:20.357 回答