О Нет такого файла или каталога завершена ошибка - PullRequest
1 голос
/ 28 июня 2011

Я новичок в 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

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Вы не включаете заголовочный файл. #include <ComPP/ComPlusPlus> это каталог. Из того, что вы опубликовали, вам нужно добавить еще один ComPlusPlus. #include <ComPP/ComPlusPlus/ComPlusPlus> но очень редко можно использовать заголовки без окончания .h. Так что вам лучше проверить правильность написания каталогов и файлов.

После тщательного чтения сайта cplusplus.com. Ошибка действительно в другом.
Они предполагают, что вы установили путь включения вашего компилятора в ComPP. Например, Ахмед уже прокомментировал с -I /usr/include/ComPP.
Таким образом, вы можете либо полностью квалифицировать ваше включение в файл cpp как / usr / include / - это стандартный путь поиска для gcc, либо добавить другой путь.
Тем не менее я нахожу очень раздражающим использование заголовка без окончания .h.

0 голосов
/ 30 июня 2011

Когда вы загружаете библиотеку comPP, в папке Documentation находится файл ProgrammersGuide.pdf. Там вы можете найти, какие библиотеки нужны. Файл не на 100% точен. Я получил это работает, используя этот формат:

g++ -I/usr/include/ComPP -lComPP -lSysPP -lpthread -lrt ExampleClient.cpp -o ExampleClient

Это будет работать, только если у вас есть:

#include <SysPlusPlus/SysPlusPlus>
#include <ComPlusPlus/ComPlusPlus>

С уважением,

Маартен

...