디시인사이드 갤러리

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

갤러리 본문 영역

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

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

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

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

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


비록 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/09/22 - -
이슈 ‘용원게이’를 넘어 배우 장용원으로 운영자 25/09/23 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47449 65
2892168 진짜 거의 모든 디시갤러들이 좋아할 뉴스가져옴 ㄹㅇ이다!!!!!!!!! 내는내는그저(117.111) 12:29 1 0
2892167 난 앱공장장은 별로인듯 [1] 노력갤로그로 이동합니다. 12:17 11 0
2892166 인프런에 김영한 강의 30퍼 할인 하던데 ㅇㅇ(106.246) 12:17 4 0
2892165 210.217 애미 입니다 [1] 210.217담당(118.235) 12:07 28 2
2892164 조선 스마트폰 분해해보기 발명도둑잡기(118.216) 12:03 11 0
2892163 찢은 보수진보 대통합을 이루고 국가붕괴시킴 ㅋㅋㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 11:54 6 0
2892161 오늘 기필코 [1] 루도그담당(118.235) 11:14 32 0
2892160 다트 던지는 느낌의 랜덤 여행 사이트 (1인 개발) 찍떠(106.101) 11:10 20 0
2892159 냥덩이 글 쓴 놈이 ㅂㅅ인 이유 발명도둑잡기(118.216) 11:07 22 0
2892158 이재명실 특활비 부정사용검증 내역 삭제 은폐 ♥냥덩이♥갤로그로 이동합니다. 11:06 15 0
2892157 나님 초코 치즈 리코타 ♥냥덩이♥갤로그로 이동합니다. 11:03 16 0
2892156 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 11:03 15 0
2892155 ❤✨☀⭐⚡☘⛩나로님 시작합니당⛩☘⚡⭐☀✨❤ [1] Naro갤로그로 이동합니다. 11:00 14 0
2892152 루도그담당=ㅆㅇㅆ 프갤러(118.235) 10:42 33 2
2892148 졸리다 루도그담당(118.235) 10:27 13 0
2892147 한국어 영어 일본어 불어 스페인어(포르투칼) ♥냥덩이♥갤로그로 이동합니다. 10:15 21 0
2892145 앱 하나 만드는데 보통 시간 얼마나걸림? ㅇㅇ갤로그로 이동합니다. 09:56 19 0
2892144 인생은 운이 아니야 ㅎ 타이밍뒷.통수한방(1.213) 09:46 20 0
2892143 찢은 보수진보 대통합을 이루고 국가붕괴시킴 ㅋㅋㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 09:38 17 0
2892140 영포티 참수 마렵네 류류(118.235) 09:23 29 1
2892136 디시에서 고소드립만 [1] 루도그담당(118.235) 09:11 61 0
2892134 Expected application/json response, got 프갤러(211.234) 09:08 23 0
2892133 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 09:07 32 0
2892132 결국 그 분탕유동은 지 혼자 정신승리하고 도망갔네 [3] 류류(118.235) 09:06 52 1
2892131 갤에서 쓸데없이 싸울 시간에 러스트나 배우십쇼 [3] 프갤러(218.154) 08:54 38 1
2892130 메이플 하고싶긴한데 할 엄두가 안나네 ㅅㅂ... ㅇㅇ(223.39) 08:48 18 0
2892127 우리나라 유일의 3층 목탑..ㅇㅅㅇ [4] 헤르 미온느갤로그로 이동합니다. 08:12 33 0
2892126 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:09 16 0
2892125 하루 한 번 헤르미온느 찬양 [1] 헤르 미온느갤로그로 이동합니다. 08:08 43 0
2892110 원추각막갤러리랑 내장장치 갤러리에서 차단당해서, terminal 해도안됨 넥도리나(220.74) 03:14 64 0
2892105 형님들 선생님들 이거 무슨 에러야? 넥도리나(220.74) 02:42 24 0
2892103 따당이는 연차가 빵개.. ㅜㅜ [4] 따당갤로그로 이동합니다. 02:24 105 0
2892102 1년에 연차 7,8개 씩 못 씀 [1] 겨겨(211.234) 02:21 41 0
2892099 너도 개발자가 되지 않겠나? [2] 프갤러(49.165) 02:04 43 0
2892096 음기 충전 발명도둑잡기(118.216) 01:29 69 0
2892095 초등학생 때 그림일기에 썼던 영화 <나 홀로 사막에> 발명도둑잡기(118.216) 01:09 20 0
2892094 한국의 사막 신두리 해안사구 발명도둑잡기(118.216) 01:00 46 0
2892092 잘가 [3] 개멍청한유라갤로그로 이동합니다. 00:55 39 0
2892091 겨드랑이 땟국물이나 마셔 ㅗ [20] ♥냥덩이♥갤로그로 이동합니다. 00:54 123 0
2892089 끙야는 쾌감이당 By 나님 [1] ♥냥덩이♥갤로그로 이동합니다. 00:48 73 0
2892088 드뎌 싼다 싼다 싼다앙 !!!! [1] ♥냥덩이♥갤로그로 이동합니다. 00:47 76 0
2892087 반끙야방귀 [1] ♥냥덩이♥갤로그로 이동합니다. 00:44 73 0
2892086 이제 끙야기운 [1] ♥냥덩이♥갤로그로 이동합니다. 00:43 74 0
2892085 뿡야해도 안낫넹.. [1] ♥냥덩이♥갤로그로 이동합니다. 00:43 70 0
2892084 내일은 일부 솔로 고문 일이다 발명도둑잡기(118.216) 00:43 40 0
2892083 본질을 깨달으면 미래를 앞선당 [1] ♥냥덩이♥갤로그로 이동합니다. 00:42 71 0
2892082 이 저능아들아 입 닥치고 내가 시키는대로만 해 프갤러(110.8) 00:42 27 0
2892081 찢은 보수진보 대통합을 이루고 국가붕괴시킴 ㅋㅋㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 00:36 16 0
2892080 나님 언어의 마술사 [1] ♥냥덩이♥갤로그로 이동합니다. 00:33 69 0
뉴스 '은수 좋은 날' 이영애X김영광, 동업 첫날부터 삐걱? 예측불가 스토리 전개! 차원이 다른 ‘육각형’ 휴먼 범죄 스릴러 탄생!  디시트렌드 09.25
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2