Flex와 들소 자신의 main
함수를 정의, 그래서 라이브러리 libfl
및 liby
내 코드를 컴파일 할 때, ld
이 main
이 여러 번 선언되기 때문에 연결하지 않으려는 정의. 이 문제를 어떻게 해결할 수 있습니까?Flex와 들소 자신의 '주요'기능
0
A
답변
3
libfl
및 liby
모두는 main
정의하지만 링크 명령 마지막으로 항상 퍼팅 라이브러리의 불변 규칙을 사용 (또는 연결 한 단계에서 컴파일하는 경우 명령을 컴파일)이라면 그들은 어떤 문제를 야기해서는 안 . (즉,하기 전에 연결하는 객체 또는 소스 파일을 -lfl -ly
을 넣어하지 않습니다.) 당신이 중 하나를 정의하거나 yywrap
을 억제하지 않는 경우에만 libfl
필요
참고. flex를 사용 중이고 yywrap
기능이 필요하지 않은 경우 플렉스 입력 파일에 %option noyywrap
을 추가하고 libfl
을 잊어 버리십시오.
또한 liby
을 필요로하지 않아야합니다. main
외에도 yyerror
을 정의합니다. 그러나 라이브러리는 항상 필요하지 않으므로 항상 yyerror
을 정의해야합니다.
libfl
및 liby
은 빠르고 편리한 테스트 또는 해킹을 작성하는 데 도움이되는 "편리한"라이브러리입니다. 생산 코드는 그것들에 의존해서는 안됩니다. 그들이 추가하는 기능은 십여 라인 이하의 매우 유용한 코드로 구성됩니다.
관련 문제
- 1. - 들소
- 2. 충돌/들소
- 3. 들소 경고
- 4. 들소 Flex는
- 5. 들소 오류가
- 6. 들소 기반 인터프리터에서 분기를 구현하는 방법은 무엇입니까?
- 7. 플렉스/들소 타겟이 존재하지 않습니다.
- 8. flex와 같은 테이블을 생성하십시오
- 9. Flex와 Java 사이의 통신?
- 10. flex와 bison : 잘못된 출력
- 11. flex와 Bison을 사용하는 파서
- 12. 는 Flex와 FF와 크롬
- 13. 들소 세트 평가 코드 오류
- 14. 플렉스/들소 ... 사용
- 15. 들소 문법의 모호함
- 16. 경고 들소 컴파일
- 17. 들소 - 결과는 무엇입니까?
- 18. 프로세스 플렉스 + 들소 출력
- 19. 다소 이상한 들소 오류
- 20. 들소 : 갈등을 어떻게 처리해야합니까?
- 21. 들소 파서 오류
- 22. 들소 -v 플래그는 아무것도
- 23. 들소 문제 - 시작 기호가
- 24. 플렉스/들소 - 시작 조건
- 25. 들소 malloc 메모리 손상
- 26. CMake 및 플렉스/들소
- 27. 들소 유도 순서
- 28. 플렉스 및 들소 계산기
- 29. 들소 : 구문 오류 파일
- 30. 들소 이동/충돌 감소
참고 : 라이브러리를 마지막으로 배치하는 순서 (및 라이브러리 순서)의 결과로 링커는 다음 라이브러리에서 아직 해결되지 않은 기호를 검색합니다. 즉, 발견 된 심볼의 첫 번째 발생을 사용합니다. 'main.c'를'main' 함수로 먼저두면, 후속 라이브러리에서 링커가 링커를 찾지 못하게됩니다 (모든 소스 파일에 여러 개의 정의 된 심볼이 있다고보고합니다). –