디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.09.25 23:09:23
조회 106 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 우리나라를 대표해서 UN 연설자로 내보내고 싶은 스타는? 운영자 25/09/29 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
2892508 구해조 나 좀 구해조 ♥냥덩이♥갤로그로 이동합니다. 09.27 42 0
2892507 나님 살짝쿵야 끙야 기운.. ♥냥덩이♥갤로그로 이동합니다. 09.27 56 0
2892504 파워 정상이 컬러가 자체적으로 안돌고 메인보드에서 돌림. 넥도리아(220.74) 09.27 42 0
2892503 파워 테스텨 하얀색은 1개만 연결하라던데... 넥도리아(220.74) 09.27 40 0
2892502 마키마씨의 발냄새 똥팬티냄새.. ♥냥덩이♥갤로그로 이동합니다. 09.27 88 0
2892501 요즘은 코딩보다 비트코인투자 영어공부중 [4] 초코냥갤로그로 이동합니다. 09.27 99 0
2892497 인간이 문명을 이룬건 두 손의 정밀한 조작과 언어소통이 가능한 구강구조 ♥냥덩이♥갤로그로 이동합니다. 09.27 37 0
2892496 이게 항상 그래, 내가 평소에 뭘 쓴다 이런건 기억도 안돼 ㅆㅇㅆ(124.216) 09.27 56 0
2892495 근데 저 짝 갤 사건 사고 많아가지고 [1] 루도그담당(58.239) 09.27 85 0
2892494 이게 참 좋은 일을 했어도 나쁘게 기억 된다니까? 미짜 술맥여서 성폭행 [1] ㅆㅇㅆ(124.216) 09.27 66 0
2892490 울갤서 나 봤다하는 놈들이면 애초에 단톡으로 여자따먹던 새끼들밖에 [5] ㅆㅇㅆ(124.216) 09.27 103 0
2892489 뭐냐 울갤 언급하면 글삭됌? 루도그담당(58.239) 09.27 53 0
2892488 ㅆㅇㅆ야 한마디만 해주마 [1] 프갤러(210.217) 09.27 85 3
2892487 와따시 벌써 콧털에서 흰 수염 난다. [1] 프갤러(110.8) 09.27 58 0
2892484 여자 불러서 술맥여서 강간하던 새끼들이 정상적으로 학교다니고 [2] ㅆㅇㅆ(124.216) 09.27 81 0
2892483 리버싱할때 어셈 분석해보면 루도그담당(58.239) 09.27 71 0
2892482 유동아 아직도 미짜 불러서 술맥이고 따먹냐. 정신차리고 살아 새끼야 ㅆㅇㅆ(124.216) 09.27 49 0
2892481 성인들도 유딩처럼 불꽃놀이에 카메라 들이대고 [5] 헬마스터갤로그로 이동합니다. 09.27 75 0
2892480 나를 울갤에서 봤니마니하는데 내가 울갤서 싸운건 술마셔서 미짜 따먹던 [1] ㅆㅇㅆ(124.216) 09.27 72 0
2892479 류도그<<임마 신기한게 임마 남 괴롭힐때마다 다중이 유동 ㅆㅇㅆ(124.216) 09.27 63 0
2892478 류도그가 병신인건 LLM을 써서 만들건 코딩을 타이핑하건 ㅆㅇㅆ(124.216) 09.27 54 0
2892476 오늘 하루종일 분석만 했다 [1] 루도그담당(58.239) 09.27 84 0
2892475 슬슬 류도그 또 나왔구만 ㅆㅇㅆ(124.216) 09.27 53 0
2892474 사기꾼은 ㅆㅇㅆ지 프갤러(210.217) 09.27 81 3
2892473 애초에 모든 학문의 근간은 암기서 시작함 ㅆㅇㅆ(124.216) 09.27 50 0
2892472 52Hz ♥냥덩이♥갤로그로 이동합니다. 09.27 48 0
2892471 애새끼좀 더 번식해라 이기이기 ㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 09.27 43 0
2892470 개발 암기 잘할수록 유리함 애초에 대부분 프로그램 패턴이 정해져있어서 ㅆㅇㅆ(124.216) 09.27 68 0
2892469 파워 a.s q.n.a 넥도리아(220.74) 09.27 48 0
2892468 git 커밋 로그 영어로 써 줘 ㅋㅋ [1] 나르시갤로그로 이동합니다. 09.27 73 0
2892466 시발거 존나 뻥뻥거리네 프갤러(49.165) 09.27 67 0
2892465 코드에 문제가 있는지 확인해. [2] 나르시갤로그로 이동합니다. 09.27 81 0
2892464 지금 개발판 사기꾼 바닥임 [6] 프갤러(220.93) 09.27 126 0
2892460 아 씨발 개발자 포기할려니까 할만한게 딱히 없음 [9] ㅇㅇ갤로그로 이동합니다. 09.27 117 0
2892459 민생쿠폰10만원받았는데 식비로도 10만원 넘게필요하지않음?? 타이밍뒷.통수한방(1.213) 09.27 41 0
2892458 XIM 통신 구현에서 공용체 union 사용 예시 나르시갤로그로 이동합니다. 09.27 45 0
2892456 저번 프붕이 통신 프로토콜 질문에 대한 실제 예시 코드 ㅋㅋ 나르시갤로그로 이동합니다. 09.27 46 0
2892455 공채 합격률이 상채 합격률보다 더 높은가? ㅇㅇ갤로그로 이동합니다. 09.27 41 0
2892453 프붕이들 깜놀랄 프로토콜 설계 ㅋㅋ [5] 나르시갤로그로 이동합니다. 09.27 79 0
2892452 고수분들은 코테 준비 어케 했음? 코테>>약간 후기도 있음 프갤러(114.205) 09.27 211 0
2892443 다음과 같은 에러가 났다. 어떻게 해결하는 것이 좋겠는가? [1] 나르시갤로그로 이동합니다. 09.27 69 0
2892442 다음 코드의 형변환에 문제 없지? 나르시갤로그로 이동합니다. 09.27 60 0
2892439 디자인 = 설계, 오늘 제미니 제안 사항 나르시갤로그로 이동합니다. 09.27 73 0
2892437 쓰레기통에 재활용하기에는 방의물건이 200-300 가치다 책포함. [2] 넥도리아(220.74) 09.27 42 0
2892434 내 자신의 디자인적 능력이 너무 덜떨어져있다 [4] ㅆㅇㅆ(124.216) 09.27 62 0
2892433 ■램16기가면 윈도우는 쓰지 말아야함? OS추천좀 [4] ㅇㅇ갤로그로 이동합니다. 09.27 88 0
2892431 주말이나 휴가때 즐기는 취미나 휴식활동 있음?? [3] ㅇㅇ(223.39) 09.27 59 0
2892430 알고리즘 강의 들을만한 사람 없음? 프갤러(114.205) 09.27 41 0
2892429 오늘도 코딩하다보면 정신나갈것같군. ㅆㅇㅆ(124.216) 09.27 61 0
2892424 책샀어요. 옆에는 기억이 안나는 SSD 넥도리아(220.74) 09.27 70 0
뉴스 곽튜브 살 더 빠졌네…“형 부부와 같은 시기 임신” 결혼 앞두고 ‘깜짝 근황’ 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2