C ++ hpp файл был включен во многие файлы и отчет компилятора "LNK4006" - PullRequest
0 голосов
/ 10 декабря 2018

Я написал Semaphore.hpp, где я объявляю класс Semaphore и определяю функцию-член. Я добавил «#pragma Once» в начало файла hpp, что означает, что этот файл будет скомпилирован только один раз.Но компилятор выдает предупреждение о ссылке. Не знаю почему, спасибо!

2>Generating Code...
2>IPC_shared_memory.obj : warning LNK4006: "public: void __cdecl Semaphore::wait(void)" (?wait@Semaphore@@QEAAXXZ) already defined in IPC_socket.obj; second definition ignored
2>IPC_shared_memory.obj : warning LNK4006: "public: void __cdecl Semaphore::notify(void)" (?notify@Semaphore@@QEAAXXZ) already defined in IPC_socket.obj; second definition ignored
2>IPC_shared_memory.obj : warning LNK4006: "public: bool __cdecl Semaphore::tryWait(void)" (?tryWait@Semaphore@@QEAA_NXZ) already defined in IPC_socket.obj; second definition ignored
2>IPC_shared_memory.obj : warning LNK4006: "public: bool __cdecl Semaphore::waitFor(long)" (?waitFor@Semaphore@@QEAA_NJ@Z) already defined in IPC_socket.obj; second definition ignored
2>IPC_shared_memory.obj : warning LNK4006: "public: int __cdecl Semaphore::getValue(void)" (?getValue@Semaphore@@QEAAHXZ) already defined in IPC_socket.obj; second definition ignored
2>IPC_shared_memory.obj : warning LNK4006: "public: void __cdecl Semaphore::resetValue(int)" (?resetValue@Semaphore@@QEAAXH@Z) already defined in IPC_socket.obj; second definition ignored
...