[英]omniorb makefile server error
Im doing some adition simple program on omniorb 4.2 but the makefile for server gives me an error. 我在omniorb 4.2上做了一些简单的程序,但是服务器的makefile给了我一个错误。 Heres my makeserver file code:
继承我的makeserver文件代码:
CC = gcc
CPPFLAGS = -g -c
LDFLAGS = -g
OMNI_HOME = /opt/omniorb
OMNI_INCLUDES = -I$(OMNI_HOME)/include
OMNI_LIB_DIR = $(OMNI_HOME)/lib
OMNIIDL = $(OMNI_HOME)/bin/omniidl
INCLUDES = $(OMNI_INCLUDES)
LIBS = -lomniORB4 -lomnithread -lomniDynamic4
OBJECTS = Data.o CServiceA.o Server.o
all Server: $(OBJECTS)
$(CC) $(LDFLAGS) -o Server -L$(OMNI_HOME)/lib $(OBJECTS) $(LIBPATH) $(LIBS)
Data.o: DataSK.cc Data.hh
$(CC) $(CPPFLAGS) $(INCLUDES) DataSK.cc
Server.o: Server.cpp Data.hh
$(CC) $(CPPFLAGS) $(INCLUDES) Server.cpp
CServiceA.o: CServiceA.cpp CServiceA.h Data.hh
$(CC) $(CPPFLAGS) $(INCLUDES) CServiceA.cpp
DataSK.cc: Data.idl
$(OMNI_HOME)/bin/omniidl -bcxx Data.idl
clean clean_all:
rm -fr *.o
rm -fr core
rm -fr *.hh
rm -fr *SK.cc
rm -fr Server
And this is the error it gives me: 这是它给我的错误:
$ make -f MakeServer
gcc -g -c -I/opt/omniorb/include DataSK.cc
gcc -g -c -I/opt/omniorb/include CServiceA.cpp
gcc -g -c -I/opt/omniorb/include Server.cpp
gcc -g -o Server -L/opt/omniorb/lib Data.o CServiceA.o Server.o - lomniORB4 -lomnithread -lomniDynamic4
gcc: error: Data.o: file or directory doesn't exist
MakeServer:13: fail in instructions for objective 'all'
make: *** [all] Error 1
The following rule is broken 以下规则已被破坏
Data.o: DataSK.cc Data.hh
$(CC) $(CPPFLAGS) $(INCLUDES) DataSK.cc
You've told make that this rule creates Data.o
, but it actually creates DataSK.o
, so change the rule and OBJECTS
你已经告诉make这个规则创建
Data.o
,但实际上它创建了DataSK.o
,所以更改规则和OBJECTS
OBJECTS = DataSK.o CServiceA.o Server.o
DataSK.o: DataSK.cc DataSK.hh
$(CC) $(CPPFLAGS) $(INCLUDES) DataSK.cc
As as side note, a lot of your makefile is unnecessary, the built-in rules and gcc dependency generation can cover most of the work: 正如旁注所示,许多makefile是不必要的,内置规则和gcc依赖生成可以涵盖大部分工作:
omni_home := /opt/omniorb
CPPFLAGS := -I$(omni_home)/include -MMD -MP
CXXFLAGS := -g
LDFLAGS := -L$(omni_home)/lib
LDLIBS := -lomniORB4 -lomnithread -lomniDynamic4
objs := DataSK.o CServiceA.o Server.o
deps := $(objs:.o=.d)
.PHONY: all clean
all: Server
Server: CC := g++
Server: $(objs)
DataSK.o: DataSK.cc
DataSK.cc DataSK.hh: Data.idl
$(omni_home)/bin/omniidl -bcxx $<
clean: ; $(RM) $(objs) $(deps) DataSK.cc DataSK.hh Server
-include $(deps)
(The above may not work correctly as I haven't tested it.) (以上可能无法正常工作,因为我没有测试过。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.