디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

내가 AI로 코딩/프밍 얘기 하는 이유

나르시갤로그로 이동합니다. 2025.09.25 23:09:23
조회 110 추천 0 댓글 1

프갤을 보면 프밍과 무관한 내용이 너무 많아서

조금이라도 프밍과 관련된 내용을 올려

타인들에게 도움되라고 올리는 것임.


비록 AI로 코딩/프밍 얘기를 올렸다하더라도

욕설, 비방, 허위사실 유포, 모욕 등의 글들보다

유익하다는 판단이다.


물론입니다. 코드의 컴파일 오류는 크게 3가지 원인으로 발생하며, 아래 설명에 따라 수정하면 해결할 수 있습니다.

오류의 핵심 원인은 구조체 정의 누락, 변수 정의 누락, 그리고 함수 시그니처 불일치입니다.


## 1. sizeof 및 멤버 접근 오류 ?

  • 오류 메시지:

    • error: invalid application of 'sizeof' to an incomplete type 'struct CimIcImpl'
    • error: incomplete definition of type 'struct CimIcImpl'
  • 원인: cim.h 헤더 파일에 struct CimIcImpl;와 같이 구조체를 전방 선언(forward declaration)만 하고, cim.c 파일 내에 실제 구조체의 멤버를 포함한 정의가 없기 때문입니다. 컴파일러는 구조체의 실제 정의를 알지 못하면 크기를 계산(sizeof)하거나 멤버(->)에 접근할 수 없습니다.

  • 해결 방법: cim.c 파일 상단에 struct CimIcImpl의 실제 정의를 추가합니다. 코드의 fallback 로직을 보면 이 구조체는 가상 함수 테이블 포인터(vtable)를 멤버로 가질 것으로 보입니다.

    // cim.c 파일 상단에 추가
    #include "cim.h"
    // ... 다른 include들 ...
    
    // 이 구조체 정의를 추가합니다.
    struct CimIcImpl {
      CimIcVTable* vtable;
    };
    
    static void* cim_handle;
    // ... 이하 코드 ...
    

## 2. vtable 변수 미선언 오류 📋

  • 오류 메시지: error: use of undeclared identifier 'vtable'

  • 원인: cim_ic_create 함수의 fallback 로직에서 &vtable을 사용하지만, vtable이라는 이름의 변수가 cim.c 파일 내에 정의되어 있지 않습니다. .so 플러그인 로딩에 실패했을 때 사용할 기본(dummy) 가상 함수 테이블이 필요합니다.

  • 해결 방법: cim.c 파일에 비어 있거나 최소한의 동작을 하는 정적 vtable 변수를 정의합니다.

    // cim.c 파일의 전역 변수 영역에 추가
    // ...
    static CimPlugin* cim_plugin;
    static uint32_t   cim_ref_count;
    
    // 이 변수 정의를 추가합니다.
    // .so 로딩 실패 시 사용될 비어있는 vtable
    static CimIcVTable vtable = { 0 };
    
    /*
     * Returns the newly allocated cim.so path string on success,
     // ... 이하 코드 ...
    

## 3. cim_ic_set_callbacks 함수 타입 불일치 오류 mismatched types ↔+

  • 오류 메시지: error: conflicting types for 'cim_ic_set_callbacks'

  • 원인: 함수의 선언과 정의의 타입 시그니처가 일치하지 않습니다. cim.h 헤더 파일에는 callbacks 매개변수가 const CimCallbacks*로 선언되어 있지만, cim.c 파일의 실제 함수 정의에는 CimCallbacks* const 한정자가 빠져 있습니다.

    • 선언 (cim.h): const CimCallbacks* callbacks
    • 정의 (cim.c): CimCallbacks* callbacks
  • 해결 방법: cim.c의 함수 정의에서 callbacks 매개변수 타입에 const를 추가하여 헤더 파일의 선언과 일치시킵니다.

    // cim.c 파일의 함수 정의 수정
    void cim_ic_set_callbacks (CimIcHandle ic,
                               const CimCallbacks* callbacks, // const 추가
                               void* user_data)
    {
      if (cim_plugin && cim_plugin->vtable->set_callbacks) // cim_plugin이 유효한지 확인하는 것이 안전
        cim_plugin->vtable->set_callbacks (ic, (CimCallbacks*) callbacks, user_data);
      else
        c_log_critical ("set_callbacks() must be implemented in the IM plugin.");
    }
    

    참고: 위 코드에서는 const를 제거하는 캐스팅 (CimCallbacks*)을 추가했습니다. 이는 cim_plugin->vtable->set_callbacks의 함수 포인터 타입이 const가 없는 버전을 가리킬 가능성에 대비한 것입니다. 하지만 가장 좋은 방법은 _CimIcVTable set_callbacks 타입 정의 자체도 const CimCallbacks*를 사용하도록 일치시키는 것입니다.


## 종합 수정 제안

위의 모든 수정 사항을 적용하면 컴파일 오류가 해결될 것입니다. 특히 cim_ic_create 함수의 fallback 로직은 다음과 같이 완성됩니다.

// cim.c 파일 내
fallback:
  // 구조체 정의가 있으므로 sizeof와 멤버 접근이 가능해집니다.
  struct CimIcImpl* impl = c_malloc (sizeof (struct CimIcImpl));
  // vtable 변수가 정의되었으므로 참조가 가능해집니다.
  impl->vtable = &vtable;
  return (CimIcHandle) impl; // 명시적 캐스팅


제 글을 읽기 싫으시면 저를 차단하시고 클릭하지 않으시면 되겠습니다.

https://nimfsoft.art/ko

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 공개연애가 득보다 실인 것 같은 스타는? 운영자 25/10/06 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47676 65
2894462 '김종국 신부 인스타 떴네요! 프갤러(175.199) 05:46 0 0
2894461 'ㅎㅂ' 윤 공주 실시간 라방킴ㄱㄱ ㅇㅇ(59.8) 05:43 2 0
2894460 '속보' 신지 예비남편이랑 파혼하네요ㄷㄷ.. 프갤러(175.199) 05:42 2 0
2894459 'ㅎㅂ' 윤 공주 실시간 라방킴ㄱㄱ ㅇㅇ(59.8) 05:39 4 0
2894458 'ㅎㅂ' 윤 공주 실시간 라방킴ㄱㄱ 프갤러(175.199) 05:38 4 0
2894456 이혼숙려캠프 에 내가 나와야 하는데, 내가 방송 분량 뽑을텐데, 브레이버갤로그로 이동합니다. 05:33 7 0
2894441 졸작 수준에 fastapi 면 충분하나 ㅇㅇ갤로그로 이동합니다. 04:56 8 0
2894436 옛날에 신촌 7.20에 갔다온 이야기 불광동까지... 걸어서,(F . 넥 브레이버갤로그로 이동합니다. 04:00 18 0
2894435 기술은 발전한다. [4] 넥도리아2025(119.195) 03:30 29 0
2894434 핸드폰에 갑자기 stream.ts라는 파일 다운로드됨 [7] ㅇㅇ(211.44) 01:59 36 0
2894433 수술 범죄의 수법과 배경 ㅇㅇ(211.216) 01:25 16 0
2894432 OS 질문 드려요 [3] 마린12갤로그로 이동합니다. 01:24 34 0
2894431 지렁이유 [1] 발명도둑잡기(118.216) 00:27 35 0
2894430 소녀시대 비타민 [1] 발명도둑잡기(118.216) 00:13 17 0
2894428 러스트처럼 메모리안전하고 빠른 언어 [1] 발명도둑잡기(118.216) 00:00 32 0
2894426 1984년 10월 4일 토마 상카라 유엔 연설 (전문) [2] 발명도둑잡기(118.216) 10.05 40 0
2894424 영화 아이,로봇 Del Spooner 형사 프갤러(59.16) 10.05 25 0
2894422 나님 별똥별 본듯? [1] ♥덩냥이♥갤로그로 이동합니다. 10.05 43 0
2894420 나는 일반 캣맘이랑 다르게 착한 캣맘임 [1] 야옹아저씨갤로그로 이동합니다. 10.05 27 0
2894418 [1인.1개] 배달의 민족 3 만 원 짜리 쓸 사람 써 ! [2] ㅇㅇ(223.39) 10.05 30 0
2894417 전시작전권 환수 프레이밍보다 전쟁개시권 환수 프레임으로 [3] 발명도둑잡기(118.216) 10.05 31 0
2894416 메모리 많으면 좋은 점 ㅋㅋㅋ [4] 나르시갤로그로 이동합니다. 10.05 44 0
2894415 러빨러.. ㅋㅋ 나한테 개털리네 ㅋㅋ [1] 나르시갤로그로 이동합니다. 10.05 27 0
2894414 별 잡다한 짓을 좀 관둘까 생각중임 [1] ㅇㅇ(223.38) 10.05 28 0
2894413 개발일 때려치고 싶다 [2] 프갤러(182.217) 10.05 69 0
2894412 카톡 안드로이드 아이폰 윈도우 넷플릭스 스포티파이 멜론같은 [2] 발명도둑잡기(118.216) 10.05 30 0
2894411 러스트는 해외에서도 안 써요 ㅋㅋㅋ [1] 나르시갤로그로 이동합니다. 10.05 32 0
2894410 하이텔 개오동 최고 최악 게임 [1] 발명도둑잡기(118.216) 10.05 53 0
2894406 누가 더 유명함 아리아나 그란데 호날두 디바(59.28) 10.05 32 0
2894402 러스트가 너무 뛰어난 언어이기 때문에 배우면 오히려 인생 망합니다. [1] 프갤러(110.8) 10.05 48 0
2894396 옥상달빛 발명도둑잡기(118.216) 10.05 13 0
2894393 카톡 쉴드치는 병신들이 어이없는점 [1] 밀우갤로그로 이동합니다. 10.05 37 1
2894392 이제 이재명 때문에 외식 안한다 중금속 발암물질 먹기 싫음 [3] ♥덩냥이♥갤로그로 이동합니다. 10.05 43 1
2894389 신념에 따라 180도 다르게 보일 내용 [1] ㅇㅇ(121.168) 10.05 22 0
2894385 러스트는 단순히 실행성능이 좋은 언어가 아닙니다. [20] 프갤러(110.8) 10.05 73 0
2894383 러스트 인생 40 년 갈아 넣었습니다. 프갤러(59.16) 10.05 26 0
2894378 나도 예전에는 로레벨과 효율성에 애정이 깊었는데 [5] ㅇㅇ(121.168) 10.05 62 0
2894376 그알에서 2번이나 제보를 요청했지만 방영 실패한 미제사건 발명도둑잡기(118.216) 10.05 28 0
2894374 앱개발자의 현실을 보여줌 [6] 프갤러(121.142) 10.05 207 15
2894371 코인 자동매매는 외주받을때마다 로직 천차만별이고 [2] ㅆㅇㅆ(124.216) 10.05 56 0
2894367 멘헤라 모모링..❤ [1] ♥덩냥이♥갤로그로 이동합니다. 10.05 39 0
2894366 AI 갓파더 얀 르쿤의 충격 경고 "LLM은 막다른 길, AGI는 오지 [1] 발명도둑잡기(118.216) 10.05 31 0
2894365 나라가 니꺼냐? 망하든 말든 신경꺼 ㅋㅋ [3] 나르시갤로그로 이동합니다. 10.05 42 0
2894358 나라망하는데이유있냐??기득권들이부패해서그렇지ㅋㅋ 타이밍뒷.통수한방(1.213) 10.05 21 0
2894354 아이폰 구매자 중 20% 확률로 똥가루폰 받는거 아님? [1] 야옹아저씨갤로그로 이동합니다. 10.05 35 0
2894352 요번에 한국 여행 가는데 포항이나 가볼까? Kyle(103.21) 10.05 20 0
2894350 러스트 담론을 해체하다 나르시갤로그로 이동합니다. 10.05 25 0
2894348 Rust 틀딱들의 죄가 너무도 많습니다 나르시갤로그로 이동합니다. 10.05 27 0
2894339 삼성 디바이스 컴포지트 디바이스 랑 연결성 디바이스 V2 뭡니까? 넥도리아2025(220.74) 10.05 58 0
뉴스 '퍼스트레이디' 도유, 조카 박서경까지 희생시키는 잔혹 권력자…강렬 존재감 입증 디시트렌드 10.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2