0

Makefile を変更し、プロジェクトをコンパイルしようとしました。しかし、それは最初のステップでのみ失敗しています。

私もコンパイル用のパターンルールを指定しました:--
http://www.gnu.org/software/make/manual/make.html#Static-Usage

メイクファイルは:--

# topdir for wxWidgets base 
top_builddir = /opt/wxgtk
EXTRALIBS = -pthread -lz -ldl -lm
LDLIBS = ${APPEXTRALIBS} ${top_builddir}/lib/libwx_baseu-2.8.a ${EXTRALIBS}
CXX         = c++

CXXFLAGS = -g -O0 -pthread -I/usr/include/SDL -D_REENTRANT -Wall -Wno-ctor-dtor-privacy
CPPFLAGS = -D__WXDEBUG__  -I${top_builddir}/wx/include/base-unicode-release-static-2.8  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1
CFLAGS = ${APPEXTRACFLAGS} ${CPPFLAGS} -O2 -MMD -pthread -Wall
CFLAGS  += -DLINUX

CANALOBJS =     ../../common/listenthread_unix.o ../../common/clientthread_level1_unix.o ../../common/devicethread_unix.o \
        ../../common/canalshmem_level1_unix.o ../../common/clientlist.o ../../common/controlobject.o \
        ../../common/devicelist.o ../../common/udpreceivethread_unix.o ../../../vscp/common/vscp.o \
        ../../common/clientthread_level2_unix.o ../../common/canalshmem_level2_unix.o \
        ../../common/tcplistenthread.o
CANALHDRS = ../../common/clientlist.h ../../common/controlobject.h ../../common/devicelist.h \
        ../../common/canal.h ../../common/canaldlldef.h \
        ../../common/version.h ../../common/canal_unix_ipc.h ../../common/CanalShMem_level1_unix.h \
        ../../common/CanalShMem_level2_unix.h ../../common/clientthread_level1_unix.h ../../common/clientthread_level2_unix.h
PROJOBJS    = ../../../common/dllist.o ../../../common/configfile.o ../../../common/crc.o
PROJHDRS    = ../../../common/dllist.h ../../../common/configfile.h
OBJS        = canald.o
HDRS        = canald.h

all:        canald

# Build the Linux executable
canald:     $(OBJS) $(HDRS) $(CANALOBJS) $(CANALHDR) $(PROJOBJS) $(PROJHDRS)
        $(CXX)  -o canald $(OBJS) $(CANALOBJS) $(PROJOBJS) -L$(LIBS) $(LDLIBS)

$(OBJS) $(CANALOBJS) $(PROJOBJS):%.o: %.cpp
        $(CXX) -c $(CFLAGS) $< -o $@

エラーが発生しています:--

make
make: *** No rule to make target `canald.cpp', needed by `canald.o'.  Stop.

このエラーを解決する方法を提案してください。

編集:-------

ファイルが見つかりませんでした...コンパイル中です...しかし、次のエラーが発生します

vscpd.cpp:47:19: fatal error: wx/wx.h: No such file or directory
compilation terminated.
make: *** [vscpd.o] Error 1

次の場所に wxgtk をインストールしました:---

/opt/wxgtk

.profile が変更されました:--

PATH = $PATH:/opt/wxgtk
export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/wxgtk/lib:$LD_LIBRARY_PATH

メイクが見つからない

#include<wx/wx.h> 

それを解決する方法?

4

1 に答える 1

1

インクルードパスを直接指定する代わりに使用する必要があります。たとえば、この回答を参照してください。wx-config

あなたのメイクファイルはCXXFLAGS、決して使用しないように定義するだけで、代わりにCPPFLAGSの一部として使用するため、かなり奇妙ですCFLAGS。したがって、あなたの場合、CPPFLAGS定義をwx-config呼び出しに置き換える必要があります。

WX_CONFIG := /opt/wxgtk/bin/wx-config
CPPFLAGS := $(shell $(WX_CONFIG) --cxxflags)

良く、このようCPPFLAGSに定義CXXFLAGSして使用してください。

LDLIBSまた、使用するためにあなたも更新してくださいwx-config

LDLIBS := ${APPEXTRALIBS} $(shell $(WX_CONFIG) --libs)

EXTRALIBS通常はもう必要ありません)。

于 2013-03-27T18:31:14.137 に答える