제품별 오류는 각 제품의 문제 해결 페이지에 있습니다. 이 페이지는 모든 제품에 공통인 설치와 실행 문제를 다룹니다.
| 메시지 |
해결 |
Windows: … was not found 또는 The specified module could not be found |
라이브러리 폴더를 PATH 앞에 추가합니다. SECS/GEM은 sdk\lib, Modbus는 lib, OPC UA는 bin입니다. 64비트(x64) 프로그램으로 빌드했는지 확인합니다. |
Windows: VCRUNTIME140.dll 또는 MSVCP140.dll 없음 |
x64 Visual C++ 재배포 가능 패키지를 설치합니다. |
Linux: error while loading shared libraries: libpdcomm_….so: cannot open shared object file |
LD_LIBRARY_PATH에 라이브러리 폴더를 추가하거나 -Wl,-rpath로 다시 빌드합니다. |
macOS: dyld: Library not loaded: @rpath/libpdcomm_….dylib |
-Wl,-rpath,<SDK>/lib로 다시 빌드하거나 DYLD_LIBRARY_PATH를 지정합니다. |
헤더와 라이브러리는 같은 패키지에서 가져옵니다. 다른 버전을 섞으면 ABI가 맞지 않을 수 있습니다. 라이브러리가 알려 주는 ABI 버전과 manifest.json의 abi를 비교합니다.
| 증상 |
해결 |
You must install or update .NET to run this application. |
바인딩에 맞는 런타임을 설치합니다. SECS/GEM은 .NET 10, Modbus와 OPC UA는 .NET 8입니다. dotnet --list-runtimes로 확인합니다. |
DllNotFoundException |
네이티브 라이브러리를 절대 경로로 지정했는지, 프로세스와 라이브러리의 아키텍처가 같은지 확인합니다. OpenSSL처럼 함께 있어야 하는 라이브러리가 같은 폴더에 있는지도 확인합니다. |
빌드에서 PDComm.dll이나 바인딩 프로젝트를 찾지 못함 |
-p:PDCommSdk, -p:PdcommModbusSdk, -p:PdcommOpcUaSdk에 SDK 폴더의 절대 경로를 지정합니다. |
| 증상 |
해결 |
This application failed to start because no Qt platform plugin could be initialized. |
시뮬레이터 폴더를 통째로 복사했는지 확인합니다. 다른 Qt 설치를 가리키는 QT_PLUGIN_PATH, QTDIR 환경 변수를 지웁니다. |
| Linux 서버에서 창이 열리지 않음 |
데스크톱 세션이 없으면 GUI를 쓸 수 없습니다. 헤드리스 시뮬레이터를 씁니다. |
시뮬레이터가 포트를 열지 못함(Address already in use) |
다른 프로그램이 같은 포트를 쓰고 있습니다. 양쪽 설정을 같은 빈 포트로 바꿉니다. |
| 증상 |
해결 |
SECS/GEM 상태 16(PDCOMM_LICENSE_REQUIRED), OPC UA 상태 11, Modbus 오류 코드 license_required, 또는 PDComm license required for module '…' (…) 메시지 |
새 통신에 필요한 라이선스가 없습니다. 괄호 안의 상태를 라이선스 문제 해결 표에서 찾습니다. 이미 연결된 통신은 계속 동작합니다. |
pdcomm-license: host id unavailable: … |
컴퓨터 고유 ID를 읽지 못했습니다. 컨테이너라면 /etc/machine-id를 만듭니다. 호스트 ID를 봅니다. |
라이선스 파일을 두었는데 상태가 missing |
pdcomm-license status나 상태 API의 sources에 그 파일이 나오는지 확인합니다. 실행 파일 옆이나 설정 폴더에 둘 때는 파일 이름이 pdcomm.license여야 합니다. PDCOMM_LICENSE_FILE에는 파일의 전체 경로를 지정합니다. |
| 증상 |
해결 |
| 검색 상자가 동작하지 않음 |
HTML 파일을 직접 열었습니다. bin/pdcomm-docs serve나 python3 -m http.server로 엽니다. 문서 사용법을 참고합니다. |
문제를 문의할 때는 패키지 이름과 manifest.json의 버전, 운영체제와 CPU 아키텍처, 실행한 명령과 전체 오류 메시지, 종료 코드를 함께 보냅니다. 통신 문제라면 진단 로그를 켜고 재현한 로그를 함께 보냅니다.