본문 바로가기

프로그래밍/툴18

Windows 7 에서 user32.dll, kernel32.dll, gdi32.dll 의 위치 mingw32 와 codeblock으로 win32 api 프로그램을 짜려니 시스템 함수들은 링크를 못 한다고 뜬다. 이유는 아마도 kernel/user/gdi 등의 라이브러리를 링크 시켜줘야 할듯... 그래서 이놈들이 어디있나 찾아보니 C:\Windows\SysWOW64 디렉토리에 있다고 나온다. 위 세개의 파일 말고도 다양한 dll이 존재하는데.. 아마도 32 빗 윈도 호환성에 관련된 파일들은 몽땅 이 디렉토리에 존재하는것 같다.. mfc40.dll, mfc42.dll, mfc71.dll 등도.. 2013. 5. 21.
[wxWidgets] 설치 with mingw32-gcc stable 버전이라고해서 2.8.12를 받아다 빌드를 시도 했더니 계속 memory exhausted 에러가 발생했다. 해결하려고 여러가지 시도를 해봤으나 계속 실패하고 결국 개발 버전 (2.9.3)을 빌드하니 깨끗하게 성공!!! 컴파일러는 http://tdm-gcc.tdragon.net/download 을 사용했다. %% 2.8.12에서는 memory exhausted 에러, liblibunicows.a 가 없다는 에러가 발생 함 빌드 방법으로는 wxWidgets-2.9.3/build/msw 디렉토리에서 mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean mingw32-make -f makefile.gcc M.. 2011. 12. 17.
lex 프로그램의 입력 문제 요즘 lex와 yacc를 공부하고있는데 간단한 lex 테스트 프로그램이 의도한 대로 동작하지 않아서 개 삽질... 으.. %{ #include %} words [A-Za-z]+ numbers [0-9]+ %% {words} { printf( "WORDS : %s\n", yytext ); } {numbers} { printf( "NUMBERS : %s\n", yytext ); } \n {} %% int main( void ) { //yyin = fopen( "data.txt", "r" ); yylex(); //fclose( yyin ); return 0; } int yywrap( void ) { return 1; } 입력된 내용중 단어와 숫자를 구분하여 출력하는 정말 심플한 코드다. 그런데 전혀 예상밖의 .. 2010. 11. 5.
lex 와 yacc 간단 짤막 요약~ [참고글] http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/lex_yacc_howto lex는 "어휘 분석과 scanner를 위한 c 코드를 생성한다." 고 되어있고 yacc는 "구문 분석과 파서를 위한 c 코드를 생성한다." 라고 되어있다. lex - 입력된 문자에서 매칭되는 문자열의 패턴을 이용해서 문자열을 토큰으로 변환한다. (패턴매칭 규칙) yacc - lex로부터 토큰을 받아들이고 문법룰에 넣고 돌려서 구문트리를 생성한후 코드를 생성한다. (문법규칙) lex 파일 형태 /////////////////////////////////////// %{ C의 global 선언 %} lex의 선언 %% lex 규칙 (패턴매칭 규칭) %% c 루틴 ///.. 2010. 10. 28.