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@MattStokesls-l../ATIDAQ/ftconfig.h
是否从该目录中正确找到文件?因为在该makefile上的快速测试s/atidaq/atidaq/
,以及对ftconvert.c
(s!\atidaq\!/atidaq/
)的类似更改中,构建对我来说很有效。。。直到我需要将-lm
添加到链接行(在ftconvert.exe
之后)时链接为止。这种类型的语句:../atidaq/ftconfig.h表示目录名atidaq是小写的(所有*nix操作系统都区分大小写),因此将主目录名更改为(小写)'atidaq'