Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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
试图将测试程序链接到库,出现错误:iostream:没有这样的文件或目录 我试图创建一个C++库,用于控制信号发生器。我有一个工作脚本,可以编译成一个可执行文件,以我想要的方式运行,现在我想创建一个带有“signal”类的静态库,这样代码就可以集成到一个更大的库中,这个库是由我参与的研究协作所创建的,我们拥有的所有硬件的一部分。但是,我在为我编写的signal.cpp源代码和signal.h编译测试程序(test.cc)时遇到了问题_C++_Hardware_Iostream - Fatal编程技术网

试图将测试程序链接到库,出现错误:iostream:没有这样的文件或目录 我试图创建一个C++库,用于控制信号发生器。我有一个工作脚本,可以编译成一个可执行文件,以我想要的方式运行,现在我想创建一个带有“signal”类的静态库,这样代码就可以集成到一个更大的库中,这个库是由我参与的研究协作所创建的,我们拥有的所有硬件的一部分。但是,我在为我编写的signal.cpp源代码和signal.h编译测试程序(test.cc)时遇到了问题

试图将测试程序链接到库,出现错误:iostream:没有这样的文件或目录 我试图创建一个C++库,用于控制信号发生器。我有一个工作脚本,可以编译成一个可执行文件,以我想要的方式运行,现在我想创建一个带有“signal”类的静态库,这样代码就可以集成到一个更大的库中,这个库是由我参与的研究协作所创建的,我们拥有的所有硬件的一部分。但是,我在为我编写的signal.cpp源代码和signal.h编译测试程序(test.cc)时遇到了问题,c++,hardware,iostream,C++,Hardware,Iostream,下面是signal.cpp: #include "signal.h" #include <iostream> #include <fstream> #include <string.h> using namespace std; signal::signal(){ myfile.open("/dev/usbtmc1"); } signal::~signal(){ myfile.close(); } int signal::on(){ myfi

下面是signal.cpp:

#include "signal.h"
#include <iostream>
#include <fstream>
#include <string.h>

using namespace std;

signal::signal(){
  myfile.open("/dev/usbtmc1");
}
signal::~signal(){
  myfile.close();
}

int signal::on(){
  myfile<<"*RST\n";
  myfile<<":DISPLAY OFF\n";
  myfile<<"FUNC1:PULS:HOLD WIDT\n";
  myfile<<"FUNC1:PULS:TRAN:LEAD 2.5NS\n";
  myfile<<"FUNC1:PULS:TRAN:TRA 2.5NS\n";
  myfile<<":FUNC1:PULS:WIDT 20NS\n";
  myfile<<":FUNC1 PULS\n";
  myfile<<":VOLT1 5.0V\n";
  myfile<<":VOLT1:OFFS 1.797V\n";
  myfile<<":FREQ1 100HZ\n";
  myfile<<":OUTP1:IMP:EXT MAX\n";
  myfile<<":ARM:SOUR1 IMM|INT\n";
  myfile<<":OUTP1 ON\n";
  myfile<<":OUTP1:COMP ON\n";
  return 0;
}
int signal::off(){;
  myfile<<"*RST\n";
  return 0;
}
int signal::write(char comstring[80]){
  strcat(comstring,"\n");
  myfile<<comstring;
  return 0;
}
我可以将signal.cpp和signal.h文件编译成signal.so动态对象,但是当我尝试在终端调用'g++test.cc-o test-l signal.h'时,我得到了错误:

signal.h:4:20:错误:iostream:没有这样的文件或目录 signal.h:5:19:错误:fstream:没有这样的文件或目录 signal.h:9:错误:应为“=”,“,”,“;”,”“信号”之前的asm“或”属性


我对此感到困惑,因为我认为IoStand和FSUSTL是C++标准库的一部分,因此在编译时不需要用G++连接。有没有人能告诉我该怎么解决这个问题?非常感谢。Sam.

希望您的所有文件都在同一个文件夹中

g++ -I . test.cpp signal.cpp  -o test

不要编译头文件,只在需要时包含它们。
-I
选项是添加一个编译器应该在其中查找头文件的路径。
#include "signal.h"
using namespace std;

int main(){
signal ser;
ser.on();
}
g++ -I . test.cpp signal.cpp  -o test