有关photon里面用socket进行网络通信的问题。

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。
回复
happy
Senior Member
帖子: 44
注册时间: 周三 3月 31, 2004 1:51 pm
联系:

有关photon里面用socket进行网络通信的问题。

帖子 happy » 周一 7月 26, 2004 10:10 am

我在photon里面用socket 进行网络通信,可程序编译时出现如下错误:
undefined reference "socket", "bind", "listen", "accept".
这个问题在IDE里面也遇到了,可我知道在IDE里面,在common.mk里面加入socket library就可以了,可在photon里面我不知道在什么地方加入这个库,急切想知道这个答案,麻烦高手相告,谢谢!

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周一 7月 26, 2004 9:13 pm

我猜你的意思是在 phAB里? 反正不管在那里都有Makefile,就修改Makefile吧。

zhang
Senior Member
帖子: 56
注册时间: 周五 9月 12, 2003 4:34 am

帖子 zhang » 周二 7月 27, 2004 9:06 am

在Makefile里同样加入库libsocket(及-lsocket)就ok啦。

happy
Senior Member
帖子: 44
注册时间: 周三 3月 31, 2004 1:51 pm
联系:

可以说详细点吗

帖子 happy » 周三 7月 28, 2004 9:47 am

Makefile文件里面那么多内容,我在什么地方加libsocket 及-lsocket呢,麻烦您说详细点好吗?
为这个问题我都急了两天了。

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 7月 28, 2004 11:19 am

不管那里有 -lph 的地方,加在它后面 :D

happy
Senior Member
帖子: 44
注册时间: 周三 3月 31, 2004 1:51 pm
联系:

急的快要疯了。

帖子 happy » 周三 7月 28, 2004 2:41 pm

看着这一天又过去了,可这个问题还是没有得到解决,这已经是第三天了。我已经快急疯了。我怎么就这么笨呢。你说让我再-lph后面加libsocket 及-lsocket,可无论我怎么加也不行呀。这是../gcc_notx86里面的Makefile文件,你看看到底在什么地方加才可以呢。
#
# Application Makefile
#

ifdef DBG
DBG_RELEASE = -O3 -fomit-frame-pointer
DBG_DEBUG = -O -gdwarf-2
DEBUG=$(DBG_$(DBG))
endif

ifndef DEBUG
DEBUG = -g
endif

ifndef OPTIM
OPTIM = -O
endif

include ../abOfiles
include ../indOfiles

include ../abSfiles
include ../indSfiles

include ../abHfiles
include ../indHfiles

include ../abWfiles
include ../abLfiles



PLATFORM=gcc_ntox86
PHABOPTS=

CC = qcc
CXX = qcc
LD = qcc

CFLAGS = -V$(PLATFORM) -w8 $(OPTIM) $(DEBUG) $(PHABOPTS) -I.
CXXFLAGS = $(CFLAGS)
LDFLAGS = -V$(PLATFORM) -Bstatic $(DEBUG) -l phexlib $(ABLIB) $(PHABOPTS)
SDFLAGS = -V$(PLATFORM) $(DEBUG) -l phexlib $(ABLIB) $(PHABOPTS)

VPATH = ..

#
# Application Program
#


shr: $(ABOBJ) $(MYOBJ)
$(LD) $(ABOBJ) $(MYOBJ) $(SDFLAGS) -M -o socket
usemsg socket ../Usemsg
phabbind socket $(ABMOD)

app: $(ABOBJ) $(MYOBJ)
$(LD) $(ABOBJ) $(MYOBJ) $(LDFLAGS) -M -o socket
usemsg socket ../Usemsg
phabbind socket $(ABMOD)

clean:
rm -f *.o *.err *.map socket

install:
-cp -vnf socket /usr/photon/bin

#
# Headers
#


$(ABOBJ) $(MYOBJ): $(MYHDR)

#
# Prototype Generation
#

proto:
-rm -f proto.h
approto -p $(ABSRC) $(MYSRC) > proto.h


希望给予指点。谢谢!

happy
Senior Member
帖子: 44
注册时间: 周三 3月 31, 2004 1:51 pm
联系:

我都快急疯了。

帖子 happy » 周三 7月 28, 2004 3:34 pm

zhang 写了:在Makefile里同样加入库libsocket(及-lsocket)就ok啦。
看着这一天又过去了,可是这个问题我还是没有得到解决。急呀。

你说在Makefile里面加入库libsocket 及-lsocket,可问题是,在Makefile里有那么多内容,在什么地方加入呢?如何加呢?

麻烦说详细点好吗?我真的很着急。
我把程序里面的./gcc_ntox86里面的Makefile给您,看在什么地方加,麻烦给予指点,好吗?
急等回复。
#
# Application Makefile
#

ifdef DBG
DBG_RELEASE = -O3 -fomit-frame-pointer
DBG_DEBUG = -O -gdwarf-2
DEBUG=$(DBG_$(DBG))
endif

ifndef DEBUG
DEBUG = -g
endif

ifndef OPTIM
OPTIM = -O
endif

include ../abOfiles
include ../indOfiles

include ../abSfiles
include ../indSfiles

include ../abHfiles
include ../indHfiles

include ../abWfiles
include ../abLfiles



PLATFORM=gcc_ntox86
PHABOPTS=

CC = qcc
CXX = qcc
LD = qcc

CFLAGS = -V$(PLATFORM) -w8 $(OPTIM) $(DEBUG) $(PHABOPTS) -I.
CXXFLAGS = $(CFLAGS)
LDFLAGS = -V$(PLATFORM) -Bstatic $(DEBUG) -l phexlib $(ABLIB) $(PHABOPTS)
SDFLAGS = -V$(PLATFORM) $(DEBUG) -l phexlib $(ABLIB) $(PHABOPTS)

VPATH = ..

#
# Application Program
#


shr: $(ABOBJ) $(MYOBJ)
$(LD) $(ABOBJ) $(MYOBJ) $(SDFLAGS) -M -o socket
usemsg socket ../Usemsg
phabbind socket $(ABMOD)

app: $(ABOBJ) $(MYOBJ)
$(LD) $(ABOBJ) $(MYOBJ) $(LDFLAGS) -M -o socket
usemsg socket ../Usemsg
phabbind socket $(ABMOD)

clean:
rm -f *.o *.err *.map socket

install:
-cp -vnf socket /usr/photon/bin

#
# Headers
#


$(ABOBJ) $(MYOBJ): $(MYHDR)

#
# Prototype Generation
#

proto:
-rm -f proto.h
approto -p $(ABSRC) $(MYSRC) > proto.h

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 7月 28, 2004 10:11 pm

LDFLAGS 和 SDFLAGS 的最后加 -lsocket 吧。

又,你的程序名也叫socket吗?

happy
Senior Member
帖子: 44
注册时间: 周三 3月 31, 2004 1:51 pm
联系:

是的,我的程序名叫socket!

帖子 happy » 周四 7月 29, 2004 8:19 am

xtang 写了:LDFLAGS 和 SDFLAGS 的最后加 -lsocket 吧。

又,你的程序名也叫socket吗?

是的,我的程序名叫socket!

zhang
Senior Member
帖子: 56
注册时间: 周五 9月 12, 2003 4:34 am

帖子 zhang » 周四 7月 29, 2004 9:48 am

把SDFLAGS = -V$(PLATFORM) $(DEBUG) -l phexlib $(ABLIB) $(PHABOPTS)
改成
SDFLAGS = -V$(PLATFORM) $(DEBUG) -l phexlib $(ABLIB) $(PHABOPTS)

-lsocket就ok啦,我已经试过了

happy
Senior Member
帖子: 44
注册时间: 周三 3月 31, 2004 1:51 pm
联系:

谢谢您!

帖子 happy » 周四 7月 29, 2004 12:10 pm

谢谢您!
搞定了。

回复