gpt4 book ai didi

c++ uniTest Makefile问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:56 26 4
gpt4 key购买 nike

我从事软件开发工作,在一个具有如下目录结构的模块中:

src: 是您将放置正在处理的源代码的目录

include: 是放置“.h”文件的目录

lib : 是安装库的地方

bin: 是安装二进制文件的地方

idl : 用于接口(interface)定义语言文件

对象:是安装依赖文件的地方(运行“make all”时)

test : 测试源码放的地方

现在我正在尝试进行测试,但是这个 makefile 有一些问题

我有一个 test/Dummy.cpp 文件,它是一个可以监听特定端口并回复特定请求的虚拟服务器,还有一个实用程序类 VendorServerSocket ,它实现了基本的通信方法。但是我不确定如何在 makefile 中实现这个类(还没有声明),所以当它调用 VendorServerScoket 时显示此错误。

CVRDummy.cpp:39: error: ‘VendorServerSocket’ was not declared in this scope
make: *** [test] Error 1

我在软件开发方面没有太多经验,我只是在学习,我想知道如何将这个类合并到我的 makefile 中, 希望你能帮助我。

这是我正在使用的生成文件:

MODULE_NAME = GenericEth



EXECUTABLES_L = Agilent_lanio $(MODULE_NAME)Dummy

$(MODULE_NAME)Dummy_OBJECTS = $(MODULE_NAME)Dummy
$(MODULE_NAME)Dummy_LIBS = $(MODULE_NAME)Eth

Agilent_lanio_OBJECTS = Agilent_lanio
Agilent_lanio_LDFLAGS = -lc

#
# list of all possible C-sources (used to create automatic dependencies)
# ------------------------------
CSOURCENAMES = \
$(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \
$(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \
$(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS))


#>>>>> END OF standard rules

#
# INCLUDE STANDARDS
# -----------------

MAKEDIRTMP := $(shell searchFile include/acsMakefile)
ifneq ($(MAKEDIRTMP),\#error\#)
MAKEDIR := $(MAKEDIRTMP)/include
include $(MAKEDIR)/acsMakefile
endif

#
# TARGETS
# -------
all: do_all
@echo " . . . 'all' done"

clean: clean_all
$(RM) *~ tatlogs sed.scan tmp .TestList.sed .testSession .purify
@echo " . . . clean done"

clean_dist: clean clean_dist_all
@echo " . . . clean_dist done"

man: do_man
@echo " . . . man page(s) done"

install: install_all
@echo " . . . installation done"

最佳答案

您必须在 CVRDummy.cppCVRDummy.hpp 之上包含包含 VendorServerSocket 的头文件。

如果在编译期间未找到“xxx.h”,编译器会在 #include "xxx.h" 行发出不同的错误。 (假设 xxx.h 包含 VendorServerSocket 的声明。

如果您正确地包含了文件,则 VendorServerSocket 可能在某个命名空间中声明。您需要使用范围解析运算符正确访问它。

关于c++ uniTest Makefile问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com