【问题标题】:C++ CodeBlocks compile two source filesC++ CodeBlocks 编译两个源文件
【发布时间】:2014-04-13 20:03:13
【问题描述】:

我尝试通过从这里下载的 CodeBlocks 编译这些文件:

https://git.gnome.org/browse/gtkmm-documentation/tree/examples/book/frame?h=master

当我尝试用代码块编译它时,我得到了那个错误:

main.cpp|8|对`ExampleWindow::ExampleWindow()'的未定义引用|

但是我从终端编译它是有效的:

g++ main.cc examplewindow.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`

有没有办法让代码块编译两个源文件?

------------- 构建:在 youtube 中调试(编译器:GNU GCC 编译器)---------------

g++ -Wall -fexceptions -g -std=gnu++11 -pthread -I/usr/include/gtkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include -I/usr/include/atkmm-1.6 -I/usr/include/giomm-2.4 -I /usr/lib/x86_64-linux-gnu/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include -I/usr/include /gtk-3.0 -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include /gtk-3.0/unix-print -I/usr/include/gdkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include -I/usr/include/atk-1.0 -I/usr /include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0 /include -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I /usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gio-unix-2.0 / -I/usr/include/harfbuzz -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lgtk-3 -lglibmm-2.4 -lcairomm-1.0 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lsigc-2.0 -lgobject-2.0 -lglib-2.0 -I/usr /include/ -I/usr/lib/x86_64-linux-gnu/ -c /home/bahaa/programming/c++/youtube/main.cpp -o obj/Debug/main.o g++ -o bin/Debug/youtube obj/Debug/main.o -L/usr/lib/mysql -lmysqlclient -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lgtk-3 -lglibmm -2.4 -lcairomm-1.0 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lsigc-2.0 -lgobject-2.0 -lglib-2.0 obj/ Debug/main.o:在函数main': /home/bahaa/programming/c++/youtube/main.cpp:8: undefined reference toExampleWindow::ExampleWindow()' /home/bahaa/programming/c++/youtube/main.cpp:8:未定义的引用 ExampleWindow::~ExampleWindow()' /home/bahaa/programming/c++/youtube/main.cpp:8: undefined reference to ExampleWindow::~ExampleWindow()' collect2:错误:ld 返回 1 退出 status 进程以状态 1 终止(0 分 1 秒) 3 错误,0 个警告(0 分 1 秒)

https://www.youtube.com/watch?v=3v3koVNb7hU&feature=youtu.be

【问题讨论】:

  • 你的项目中有它吗?它的布局是怎样的?您在构建窗口中看到什么命令?答案是肯定的,但如果你想知道为什么你没有成功,你必须展示你的尝试。
  • 我只是在代码块中添加了然后将它们重命名

标签: c++ ubuntu codeblocks gtkmm


【解决方案1】:

您在终端中输入的命令看起来与正在执行的命令代码块完全不同,因此它执行不同操作的事实是逻辑。 但是,对于undefined reference,这通常意味着您在某处忘记了includeExampleWindow 声明/定义在哪里?它是否通过您正在执行的两个包含之一包含在您的main 中?

【讨论】:

    猜你喜欢
    • 2010-10-23
    • 2013-01-08
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2019-06-27
    • 1970-01-01
    相关资源
    最近更新 更多