代码块的 FLTK 错误

Posted

技术标签:

【中文标题】代码块的 FLTK 错误【英文标题】:FLTK error with Codeblocks 【发布时间】:2018-05-31 13:00:21 【问题描述】:

我想用 FLTK 做一个 GUI。所以我通过酿造将它安装在我的Mac上。到目前为止效果很好。

尽管如此,当我尝试编译一个小程序时,我收到以下错误消息:

-------------- Build: Debug in fltk_test (compiler: GNU GCC Compiler)---------------

g++  -o bin/Debug/fltk_test obj/Debug/main.o    
Undefined symbols for architecture x86_64:
  "fl_define_FL_SHADOW_LABEL()", referenced from:
      _main in main.o
  "Fl::run()", referenced from:
      _main in main.o
  "Fl_Box::Fl_Box(int, int, int, int, char const*)", referenced from:
      _main in main.o
  "Fl_Group::end()", referenced from:
      _main in main.o
  "Fl_Window::show(int, char**)", referenced from:
      _main in main.o
  "Fl_Window::Fl_Window(int, int, char const*)", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

这是我的代码:

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

int main (int argc, char ** argv)

  Fl_Window *window;
  Fl_Box *box;

  window = new Fl_Window (300, 180);
  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());

相信我,我搜索了四个多小时,尝试使用不同的 IDE(Atom)等等。 “正常”C++ 工作正常...

提前致谢。我很感激我能得到的每一个提示或帮助:)

【问题讨论】:

What is an undefined reference/unresolved external symbol error and how do I fix it?的可能重复 【参考方案1】:

您应该将编译器链接到 fltk。转到project-&gt;build options-&gt;linker options-&gt;add 并写fltk 然后保存并重建项目并运行它。

在某些用法中,您还需要将fltk_formsfltk_gl fltk_images 链接到编译器。

【讨论】:

【参考方案2】:

编译器告诉您它找不到您正在调用的 FLTK 函数的函数定义。这意味着您没有正确链接 FLTK 库。请参阅标题下有关如何链接库 here 的说明:编译您的程序

【讨论】:

感谢您的回答,但老实说,我也没有完成。我必须将这个 (c++ -I/usr/local/include ...) 添加到编译器行,但是我在 Code::Blocks 哪里可以找到它,我想我必须替换三个点,嗯,怎么办我必须放在那里?对不起

以上是关于代码块的 FLTK 错误的主要内容,如果未能解决你的问题,请参考以下文章

计算块的 Merkle 根的代码

IOS Block代码块的定义与使用

java-普通代码块构造代码块和静态代码块的区别。

Java中静态代码块构造代码块的区别

08 java代码块的概述和分类

JAVA 静态代码块的简单运用