配置Eclipse CDT以使用wxWidgets

时间:2014-02-18 21:27:30

标签: c++ wxwidgets eclipse-cdt

我一直在尝试配置Eclipse CDT(在Ubuntu Precise上)以使用wxWidgets编译程序。我收到了Eclipse的错误,但程序编译好了我提供的makefile。我按照http://wiki.wxwidgets.org/Eclipse#Linux中的说明进行了操作,但仍然没有成功。 (即,我相信我已正确设置编译器和链接器标记。)

我的头文件如下:

#ifndef READIMAGE_H_
#define READIMAGE_H_

class Image{
wxImage *loadedImage;
public:
    Image(string filename);
    void loadImage(string filename){};
};

#endif /* READIMAGE_H_ */

我的源文件如下:

#include <wx/wx.h>
#include <wx/image.h>
#include <iostream>

using namespace std;

#include "readImage.h"

Image::Image(string file){
    loadImage(file);
}

int main(){
    Image img("example.jpg");
}

我收到的错误是:

make: *** [Image_IO] Error 1
Type 'wxImage' could not be resolved
undefined reference to `wxRect2DInt::operator=(wxRect2DInt const&)'
undefined reference to `wxRect2DInt::operator=(wxRect2DInt const&)'
undefined reference to `wxThread::~wxThread()'

如果这有帮助,makefile如下:

INCS =
LIBP = 

ARCH_CFLAGS =
#The code below should be used rather than the
#specific 2.4 version one. With this one we ensure
#that we run the latest release of wxGTK rather
#than a specific one:

WX_LIBS = `wx-config --libs --gl-libs`
WX_FLAGS = `wx-config --cxxflags`

LIBS = $(WX_LIBS)
ARCH_CFLAGS =
EXES = readImage

CFLAGS  = $(ARCH_CFLAGS) $(WX_FLAGS) -Wall -Wno-unused -Wno-reorder \
    -O3  -fomit-frame-pointer -fforce-addr 


# ------------------

all : clean $(EXES)

clean :
    find -name "*.o" -exec rm {} \;
    rm -f ${EXES} -R

# ------------------

readImage : readImage.o
    g++ readImage.o -o readImage $(ARCH_CFLAGS) $(LIBS) $(CFLAGS)

readImage.o : readImage.cpp readImage.h
    g++ -c readImage.cpp $(ARCH_CFLAGS) $(INCS) $(WX_FLAGS)

# ------------------

有什么想法吗?

非常感谢提前。

修改

在C ++编译器和链接器的命令行模式中(分别是项目&gt;属性&gt; GCC C ++编译器和&gt; GCC C ++链接器),如果我将$ {FLAGS}移动到模式的末尾,那么我只收到一个错误:

Type 'wxImage' could not be resolved

注意我没有收到任何包含警告,建议编译器和链接器可以找到库。

2 个答案:

答案 0 :(得分:1)

问题解决了。

按照我的帖子编辑中的步骤后,我尝试通过终端在makefile上运行make命令。程序编译得很好,所以我认为它只是代码分析工具。我最终转到项目&gt;属性&gt; C / C ++一般&gt;代码分析&gt;启动并在您键入时取消选择运行并选择使用build运行选项。

我假设这迫使Eclipse使用编译器输出来创建错误和警告,而不是使用其他一些内置方法。也许有人可以澄清这一点。

注意:我需要在步骤生效前重新启动eclipse。

非常感谢。

答案 1 :(得分:0)

配置eclipse以使用wxWidgets有点复杂。根据我的经验,有一些编译器标志和链接器选项需要相应地设置,这可能会导致混淆初学者。

在我使用eclipse的经历中,我发现了一些简单的方法可以使用wxWidgets很好地运行eclipse,请查看这个简化的安装程序,它将帮助你配置eclipse。

安装程序最初针对raspberry pi板,因为它包含使用buildroot构建的交叉编译器工具链。 但是,已经提供了针对Linux x86_64的目标构建,已经在Ubuntu 14.04-LTS上进行了测试。

请尝试通知您的里程。

http://yasriady.blogspot.co.id/2016/01/raspberry-pi-toolchain.html

Rgrds / DDY