我是C ++的新手,我为网络编程安装了lib Com++ 但当我只包括头文件
#include <iostream>
#include <ComPP/ComPlusPlus>
using namespace std;
int main(int argc ,char *argv[]){
cout << "Hello World" << endl;
return 0;
}
我收到错误
main.cpp:2:29: fatal error: ComPP/ComPlusPlus: No such file or directory
使用fedora linux 我使用此命令进行编译,如手册中所述
g++ -I ./ -L./ -o server main.cpp -lCommPP -lsys -lpthread -lrt
目录/ usr / include / ComPP /与所有头文件一起存在
ComPP
├── ComPlusPlus
│ ├── AClnt.h
│ ├── ASrvContext.h
│ ├── ASrv.h
│ ├── ASrvProperties.h
│ ├── Clone.h
│ ├── Comm.h
│ ├── ComPlusPlus
│ ├── Context.h
│ ├── Daemon.h
│ ├── Directory.h
│ ├── DirEntry.h
│ ├── File.h
│ ├── Launch.h
│ ├── Mutex.h
│ ├── Poll.h
│ ├── Process.h
│ ├── SClnt.h
│ ├── Sem.h
│ ├── ShMem.h
│ ├── Signalling.h
│ ├── Socket.h
│ ├── SocketTcp.h
│ ├── SocketUdp.h
│ ├── SocketUnix.h
│ ├── SrvProperties.h
│ ├── SSrvContext.h
│ ├── SSrv.h
│ ├── SSrvProperties.h
│ └── Thread.h
└── SysPlusPlus
├── ComException.h
├── config.h
├── GenCfg.h
├── Logger.h
├── syscall.h
├── syslib.h
├── SysPlusPlus
└── Tools.h
答案 0 :(得分:2)
您不包含头文件。 #include <ComPP/ComPlusPlus>
这是一个目录。从您发布的内容中,您需要添加另一个ComPlusPlus。 #include <ComPP/ComPlusPlus/ComPlusPlus>
但是在没有.h结尾的情况下使用标头非常罕见。所以你最好检查目录和文件的拼写。
仔细阅读cplusplus.com网站后。这个错误确实是另一回事
他们假设您将编译器的包含路径设置为ComPP。例如艾哈迈德已经评论过-I / usr / include / ComPP
因此,您可以在cpp文件中完全限定include,因为/ usr / include /是gcc的标准搜索路径,或者您添加了另一条路径。
尽管如此,我发现使用没有.h结尾的标题非常恼火。
答案 1 :(得分:0)
下载comPP库时,Documentation文件夹中有ProgrammersGuide.pdf。在那里你可以找到需要的库。该文件不是100%准确。我使用这种格式工作:
g++ -I/usr/include/ComPP -lComPP -lSysPP -lpthread -lrt ExampleClient.cpp -o ExampleClient
这只有在包含以下内容时才有效:
#include <SysPlusPlus/SysPlusPlus>
#include <ComPlusPlus/ComPlusPlus>
亲切的问候,
马腾