Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 生成ATIDAQ C库_C++_C_Makefile - Fatal编程技术网

C++ 生成ATIDAQ C库

C++ 生成ATIDAQ C库,c++,c,makefile,C++,C,Makefile,不管是什么原因,在我离开后,我甚至无法做出他们的股票例子。文件结构如下所示: ├── ATIDAQ │   ├── ascii.h │   ├── asciitab.h │   ├── dom.c │   ├── dom.h │   ├── events.c │   ├── expatls.c │   ├── ftconfig.c │   ├── ftconfig.h │   ├── ftrt.c │   ├── ftrt.h │   ├── ftsharedrt.h │   ├── iasci

不管是什么原因,在我离开后,我甚至无法做出他们的股票例子。文件结构如下所示:

├── ATIDAQ
│   ├── ascii.h
│   ├── asciitab.h
│   ├── dom.c
│   ├── dom.h
│   ├── events.c
│   ├── expatls.c
│   ├── ftconfig.c
│   ├── ftconfig.h
│   ├── ftrt.c
│   ├── ftrt.h
│   ├── ftsharedrt.h
│   ├── iasciitab.h
│   ├── latin1tab.h
│   ├── nametab.h
│   ├── node.c
│   ├── stack.c
│   ├── stack.h
│   ├── utf8tab.h
│   ├── xmldef.h
│   ├── xmlparse.c
│   ├── xmlparse.h
│   ├── xmlrole.c
│   ├── xmlrole.h
│   ├── xmltok.c
│   ├── xmltok.h
│   ├── xmltok_impl.c
│   ├── xmltok_impl.h
│   └── xmltok_ns.c
├── readme.txt
└── Samples
    ├── calinfo.c
    ├── ftconvert.c
    └── makefile
#makefile for ftconvert and calinfo
#use 'make ftconvert' to make ftconvert sample and 'make calinfo' to make calinfo
#uses gcc, needs modifications for other compilers.
object_compile = gcc -c
exe_compile = gcc -o
remove_command = rm
ftconvert: ftconvert.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
    $(exe_compile) ftconvert.exe ftconvert.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
ftconvert.o: ftconvert.c ../atidaq/ftconfig.h 
    $(object_compile) ftconvert.c
ftconfig.o: ../atidaq/ftconfig.c ../atidaq/ftconfig.h
    $(object_compile) ../atidaq/ftconfig.c
ftrt.o: ../atidaq/ftrt.c ../atidaq/ftrt.h  ../atidaq/ftsharedrt.h
    $(object_compile) ../atidaq/ftrt.c
dom.o: ../atidaq/dom.c
    $(object_compile) ../atidaq/dom.c
expatls.o: ../atidaq/expatls.c
    $(object_compile) ../atidaq/expatls.c
node.o: ../atidaq/node.c
    $(object_compile) ../atidaq/node.c
stack.o: ../atidaq/stack.c
    $(object_compile) ../atidaq/stack.c
xmlparse.o: ../atidaq/xmlparse.c
    $(object_compile) ../atidaq/xmlparse.c
xmlrole.o: ../atidaq/xmlrole.c
    $(object_compile) ../atidaq/xmlrole.c
xmltok.o: ../atidaq/xmltok.c
    $(object_compile) ../atidaq/xmltok.c
calinfo: calinfo.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
    $(exe_compile) calinfo.exe calinfo.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
calinfo.o: calinfo.c ../atidaq/ftconfig.h
    $(object_compile) calinfo.c
clean:
    $(remove_command) *.o *.exe
自述文件提到: 以下文件应作为项目的一部分进行编译:ftconfig.c ftrt.c dom.c exptals.c node.c stack.c xmlparse.c xmlrole.c xmltok.c

除上述文件外,文件“events.c”、“xmltok_impl.c”和 “xmltok_ns.c”也包含在这个库中,但并不意味着是 直接编译,因为它们“包含”到其他库文件中

这些文件都不打算修改

但是已经创建了一个makefile,看起来是这样的:

├── ATIDAQ
│   ├── ascii.h
│   ├── asciitab.h
│   ├── dom.c
│   ├── dom.h
│   ├── events.c
│   ├── expatls.c
│   ├── ftconfig.c
│   ├── ftconfig.h
│   ├── ftrt.c
│   ├── ftrt.h
│   ├── ftsharedrt.h
│   ├── iasciitab.h
│   ├── latin1tab.h
│   ├── nametab.h
│   ├── node.c
│   ├── stack.c
│   ├── stack.h
│   ├── utf8tab.h
│   ├── xmldef.h
│   ├── xmlparse.c
│   ├── xmlparse.h
│   ├── xmlrole.c
│   ├── xmlrole.h
│   ├── xmltok.c
│   ├── xmltok.h
│   ├── xmltok_impl.c
│   ├── xmltok_impl.h
│   └── xmltok_ns.c
├── readme.txt
└── Samples
    ├── calinfo.c
    ├── ftconvert.c
    └── makefile
#makefile for ftconvert and calinfo
#use 'make ftconvert' to make ftconvert sample and 'make calinfo' to make calinfo
#uses gcc, needs modifications for other compilers.
object_compile = gcc -c
exe_compile = gcc -o
remove_command = rm
ftconvert: ftconvert.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
    $(exe_compile) ftconvert.exe ftconvert.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
ftconvert.o: ftconvert.c ../atidaq/ftconfig.h 
    $(object_compile) ftconvert.c
ftconfig.o: ../atidaq/ftconfig.c ../atidaq/ftconfig.h
    $(object_compile) ../atidaq/ftconfig.c
ftrt.o: ../atidaq/ftrt.c ../atidaq/ftrt.h  ../atidaq/ftsharedrt.h
    $(object_compile) ../atidaq/ftrt.c
dom.o: ../atidaq/dom.c
    $(object_compile) ../atidaq/dom.c
expatls.o: ../atidaq/expatls.c
    $(object_compile) ../atidaq/expatls.c
node.o: ../atidaq/node.c
    $(object_compile) ../atidaq/node.c
stack.o: ../atidaq/stack.c
    $(object_compile) ../atidaq/stack.c
xmlparse.o: ../atidaq/xmlparse.c
    $(object_compile) ../atidaq/xmlparse.c
xmlrole.o: ../atidaq/xmlrole.c
    $(object_compile) ../atidaq/xmlrole.c
xmltok.o: ../atidaq/xmltok.c
    $(object_compile) ../atidaq/xmltok.c
calinfo: calinfo.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
    $(exe_compile) calinfo.exe calinfo.o ftconfig.o ftrt.o dom.o expatls.o node.o stack.o xmlparse.o xmlrole.o xmltok.o
calinfo.o: calinfo.c ../atidaq/ftconfig.h
    $(object_compile) calinfo.c
clean:
    $(remove_command) *.o *.exe
运行命令:
make ftconvert
会产生错误:

gcc -c ftconvert.c
ftconvert.c:35:32: fatal error: ..\atidaq\ftconfig.h: No such file or directory
compilation terminated.
make: *** [ftconvert.o] Error 1

不确定我在这里遗漏了什么,或者为什么我甚至不能让股票示例工作

这是一个目录名大小写问题

atidaq
atidaq
不同

重命名目录或编辑生成文件


然后去投诉提供源代码的人,他们的源代码依赖于在没有区分大小写文件名的平台(如Windows)上提取。

通过此修改,我现在进入:
make:**没有规则使目标“../ATIDAQ/ftconfig.h”成为“ftconvert.o”所需的目标。停止。
@MattStokes你当时编辑了makefile?好啊您运行make的目录是什么?我确实编辑了make文件,并在示例中调用makedirectory@MattStokes
ls-l../ATIDAQ/ftconfig.h
是否从该目录中正确找到文件?因为在该makefile上的快速测试
s/atidaq/atidaq/
,以及对
ftconvert.c
s!\atidaq\!/atidaq/
)的类似更改中,构建对我来说很有效。。。直到我需要将
-lm
添加到链接行(在
ftconvert.exe
之后)时链接为止。这种类型的语句:../atidaq/ftconfig.h表示目录名atidaq是小写的(所有*nix操作系统都区分大小写),因此将主目录名更改为(小写)'atidaq'