개요

SpringSource Tool Suite for Eclipse Juno(이하 STS) 를 Eclipse Marketplace 를 통해 설치를 하고자 할 때, Dependencies 체크 후에 아래와 같은 메시지와 함께 설치가 되지 않는다.

Cannot complete the install because one or more required items could not be found. Software being installed: Spring IDE Security Extension (optional) 3.1.0.201210040510-RELEASE
...
...
이하 생략    

이 문제는 인터넷을 통해 필자와 같은 문제의 Thread를 찾을 수 있었다.

  • Thread: cannot install Spring Tool Suite (STS) for Eclipse Juno (3.8 + 4.2) 3.1.0.RELEASE     필자와 같은 문제가 발생하는 경우 위 링크의 답변처럼 GEF(Graphical Editing Framework) 를 설치/업데이트 하면 된다고 한다. 아래의 원문의 링크를 이클립스에서 Help -> Install New Software를 이용하여 설치/업데이트를 할 수 있다. 뭐가 뭔지 잘 모르겠다면 Releases 의 링크를 통해 업데이트하면 된다.

GEF Update-Sites
Using the Eclipse Update Manager (see Eclipse Help for detailed instructions) GEF can be installed from the following update sites:

GEF(Graphical Editing Framework)의 정보는 IBM 사이트에서 찾을 수 있다. 모델링이나 이미지/그래픽 기반으로 Editing 할 수 있는 오픈 소스 프레임워크이다. STS에서 GEF를 이용한 기능적인 향상이나 종속적인 바이너리 등이 변경이 된 듯 싶다.


[이미지 1] GEF Extension 예시 / 이미지 출처 - http://www.eclipse.org/gef/


[이미지 2] Visual Studio DGML / 이미지 출처 - http://msdn.microsoft.com/en-us/library/vstudio/jj739835.aspx  

마치 Visual Studio 의 DGML(Directed Graph Markup Language)과 비슷하게 보인다. 하지만, Eclipse에서의 GEF와 Visual Studio에서의 DGML의 가장 큰 차이점이라고 하면 DGML은 정의된 스키마(Defined Schema)이고, GEF는 확장 가능한 프레임워크라는 점이다. 그 점에서 Eclipse의 GEF에 더 좋은 점수를 주고 싶다..    

GEF와 DGML의 자세한 내용은 아래의 링크를 참고하기 바란다.

Eclipse에서 GEF를 설치/업데이트가 성공하였다면 다시 Eclipse Marketplace에서 STS을 설치한다. 그럼 아래와 같이 못 보던 추가 구성 요소들이 더 많아진다. 그리고 계속 진행하면 설치가 성공할 것이다.    

Posted by 땡초 POWERUMC

댓글을 달아 주세요

개요

간단하게 작성한 C++ 코드가 컴파일이 되지 않는다. auto 키워드와 lambda 식을 제대로 해석을 하지 못하는 모양이다.

인터넷을 통해 쉽게 문제를 해결할 수 있었다. 아래의 원문의 링크를 참고하면 된다. 필자는 아래의 링크를 참고하여 스샷좀 뜨고, 예제 샘플 정도만 만들었으니 설정에 어려움이 없다면 아래의 참고 링크만으로 충분할 것이다.

필자가 받은 GCC 4.7.2 버전의 Release 변경 사항을 보면 도움이 될 것이다.

그리고 몇 가지 std 함수 중 to_string 함수에 버그가 있는데, 아직도 Pending 상태라 되도록 사용하지 말고(사용자체가 안된다 ^^;), stringstream 등을 사용하도록 권장한다. SourceForge에서 GCC 버그 항목을 찾아보면 2011년도에 버그가 등록되었지만, 우선순위가 낮아 당분간 고칠 생각이 없는것 같다. (SourceForge GCC to_string 버그 링크)

MinGW-GCC 에서 C++11 컴파일 환경 구성

Project Explorer -> Project Properties -> C/C++ Build 탭 -> Settings 탭 -> Tool Settings 탭 -> Miscellaneous 항목 -> Other Flags 에 -std=c++0x 를 추가한다.

그리고 C/C++ General 탭으로 이동한 후 Paths and Symbols 탭 -> Symbols 탭 -> __GXX_EXPERIMENTAL_CXX0X__ 항목의 Value 값을 0 으로 설정한다.

모두 완료되었다면 Clean Project를 해서 다시 컴파일하자. 아래와 같이 auto 키워드와 lambda 구문에 더 이상 경고와 오류 문구가 뜨지 않고 컴파일도 성공한다.

Posted by 땡초 POWERUMC

댓글을 달아 주세요

Qt 개발 환경을 만들려는 참에 Eclipse에서 Visual C++로 만든 프로젝트를 MinGW GCC로 변환해야 할 필요가 생겼다. '인터넷 검색 링크를 잊어버려서… 다시 참고 원문 링크는 찾으려니 찾아지지 않아서... 패스....'

우선 프로젝트를 변환하는 방법은 크게 두 가지가 있는데, 예를 들어, 첫 번째는 전혀 다른 프로젝트를 Dynamic Web Application으로 바꾼다거나… 이런 경우에는 Project Explorer에서 -> Propject Properties -> Project Facet에서 변경하면 된다고 한다.

   

두 번째, 필자가 필요한 것은 이 방법이다. Eclipse에서 Visual C++로 만든 프로젝트를 MinGW로 변경하고자 한다.

Project Explorer -> Project Properties -> C/C++ 탭 -> Tool Chain Editor에서 변경할 수 있다.

   

이제 MinGW GCC 컴파일러를 이용하여 컴파일이 되도록 환경을 수정해야 한다. 이 방법은 아래의 링크를 참고하면 된다.


참고로 필자의 MinGW GCC 환경 변수의 경로이다.

  • INCLUDE - D:\Program Files\MinGW\include
  • LIB/LIBPATH - D:\Program Files\MinGW\lib
  • PATH - D:\Program Files\MinGW\bin

   

여기에서 주의해야 할 것은 Environment 옵션에서 'Append variables to native environment' 항목을 선택한다.

   

Posted by 땡초 POWERUMC

댓글을 달아 주세요

Eclipse 개발 도구의 장점이라면 많은 벤더가 Eclipse 개발 환경을 지원하고, 오픈 커뮤니티 포럼도 굉장히 활성화가 되어있다는 장점이 있다. 그리고 오픈 소스이며 순수 Java로만 구현이 되어있어 Eclipse를 확장하거나 개발 환경을 구성하기 매우 쉽다. Eclipse에서 여러 언어를 지원하고 다양한 무료 플러그 인을 제공한다. (일부 언어는 컴파일러를 별도로 설치해야 한다.)

그 중 인터넷 자료를 찾아보면 Eclipse에서 C++ 개발 환경을 구성할 수 있는데, GCC(GNU C Compiler)에 포함된 컴파일러를 대상으로 소개하고 있어, 이를 Visual C++ 환경을 구성하는데 몇 가지 시행착오를 겪은 부분이 있어 이를 공유하고자 한다.

물론, Microsoft에서는 Visual Studio Express 2012 for Windows Desktop Application라는 무료 개발 버전을 제공한다. 하지만, 무료 개발 버전인 Express는 여러 가지 무료 플러그 인을 설치하는데 제약이 있어, 거의 순정 그대로 사용 해야 하는 불편한 점이 있다. 무료 개발 툴이 Eclipse를 이용하여 Visual C++ 개발 환경을 구성하고, Eclipse의 다양한 플러그 인을 그대로 사용할 수 있도록 하기 위해, 개발을 위해 추가 비용 없이 무료 도구인 Eclipse 에서 Visual C++ 개발 환경을 구성하는 것이 도움이 될 것이다.

     

1. 먼저 Visual C++ 컴파일러가 포함된 SDK 를 다운로그 하면 된다.

가장 최신 버전인 Windows SDK for Windows 8 버전은 아쉽게도 모든 컴파일러가 포함되지 않는다. Microsoft가 무슨 수작을 부리려는 것인지는 몰라도, 지금껏 꾸준히 제공된 SDK 를 충실히 제공하지 않는다.

 

더 자세한 내용은 필자가 작성한 다음의 링크를 참고하기 바란다.

     

비교적 가장 최신 버전인 Windows 7 SDK 또는 Windows 8 SDK를 설치하면 된다.

     

     

2. 그 다음, Eclipse C++ 개발 버전을 다운로드 받아서 설치한다.

이미 Eclipse IDE for Java EE Developers 버전 등을 이미 설치했다면, 다운로드 받은 Eclipse IDE for C/C++ Developers을 압축을 풀어서 features 폴더와 plugins 폴더를 기존의 Java EE 버전에 복사를 하고, 중복된 파일은 Skip 하면 된다.

올바르게 설치가 되었으면 필자와 같이 C++ 프로젝트를 생성할 수 있다.

     

아래와 같이 Microsoft Visual C++ 프로젝트를 생성할 수 있는 항목이 있다. 그렇다고 프로젝트를 생성한 후 컴파일은 되지 않을 것이다. 그런 이유로 필자는 지금 이 아티클을 쓰고 있지 않은가? ^^

     

Visual C++ 프로젝트가 생성이 되면, 아래와 같이 붉은 색의 x 표시가 너덜 너덜 널려있다.

     

Ctrl+F11 을 눌러 실행시키면 다음과 같은 오류 메시지가 나온다. 정상이니 놀라지 말자.

     

     

3. 컴파일 환경을 구성하기 위해 환경 변수 정보를 수집하자.

Eclipse에서 Visual C++을 컴파일 하기 위해서 다음의 환경 변수 정보가 필요하다. 이 경로는 Visual C++ 컴파일러와 Visual Studio에서 C++ 빌드를 하기 위해 필요한 경로이다.

  • PATH
  • INCLUDE
  • LIB
  • LIBPATH

     

Visual C++ 컴파일러인 cl.exe 파일은 %ProgramFiles(x86)%\C:\Microsoft Visual Studio 11.0\VC\bin\cl.exe 에 위치한다. 그러나, 이 cl.exe는 현재 폴더의 하위에 존재하는 CPU 아키텍처 버전별 폴더에 있는 .dll 파일을 필요로 한다. 이 폴더에도 cl.exe 파일이 존재하므로 현재 자신의 컴퓨터의 CPU 아키텍처 버전의 폴더만 알면 된다.

     

자신의 컴퓨터의 CPU 프로세스 아키텍처를 모르면 Command Line에서  SET PROCESS 를 입력해 본다. 그럼 아래와 같이 확인할 수 있다.

     

이로써, 컴파일에 필요한 cl.exe 가 포함된 폴더는 %ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\bin\amd64 임을 알 수 있다. 이 폴더를 메모해 놓자.

그리고 더 필요한 폴더가 있다.

%ProgramFiles(x86)%\C:\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat 파일은 'Visual Studio 개발자용 명령 프롬프트'이다. 이 파일의 내용을 보면 컴파일이나 명령 도구를 수행하기 위해 필요한 경로를 설정하는 부분이 있는데, 이 폴더들도 필요하다.

     

위와 같이 PATH, INCLUDE, LIB, LIBPATH 가 Visual C++을 컴파일 하기 위해 필요하다. 이 Batch 파일을 보면 위의 환경 변수에 조건에 따라 계속 경로를 추가한다. 그러므로 우리는 편의상 설정된 전체 경로를 그대로 복사해서 사용할 것이다.

먼저 Visual Studio 개발자 명령 프롬프트(Command Line)을 실행 시킨 후, 아래와 같이  SET INCLUDE 와  SET LIB 명령을 실행하면 완전한 환경 변수의 경로를 구할 수 있다.   

     

이 경로를 클립보드에 복사하기 편하도록 하려면, 다음과 같이 파일에 결과를 쓰도록 하면 된다. 그럼 log.txt 파일이 없으면 파일을 생성하고, 파일이 존재하면 콘솔의 출력 내용이 log.txt 파일 끝에 추가 된다.

C:…\>SET INCLUDE >>log.txt
C:…\>SET LIB >>log.txt
C:…\>SET PATH >>log.txt

     

     

4. 이제 Visual C++ 컴파일러인 cl.exe 파일을 Eclipse에서 컴파일이 되도록 설정해보자.

일부 환경 변수의 경로는 %PATH% 환경 변수의 경로에 추가해 주면 되는데, 그렇게 되면 너무 번거로워질 것 같아서, Eclipse에서 제공하는 기능을 통해 환경 변수 정보를 추가하겠다.   

Eclipse 메뉴에서 Windows -> Preferences -> C/C++ 탭 -> Build 탭 -> Environment 로 이동하자.

     

이 곳에서 아래의 그림과 같이 PATH, INCUDE, LIB, LIBPATH 환경 변수를 입력하면 된다.

     

이제 Ctrl+F11 을 눌러 컴파일하여 실행하면 정상적으로 실행이 될 것이다.

하지만 C++ 편집기에는 붉은 색의 경고 문구들이 사라지지 않았다.

     

그렇다. 지금까지 Eclipse에서 C++ 소스 코드를 빌드하는 환경을 구성한 것이다.

     

     

5. Eclipse 에서 C++ 소스 코드 편집 환경 구성을 해야 한다.

여기까지 잘 구성을 하신 분이라면 이번 구성도 어렵지 않게 할 수 있을 것이다. 환경 변수의 경로만 몇 개 추가해 주면 된다.

Eclipse의 좌측 Project Explorer에서 C++ 프로젝트에 마우스를 갖다 놓고 오른쪽 버튼을 클릭해보자. 프로젝트 속성을 변경할 수 있는 Properties 메뉴 항목이 보일 것이다. 클릭하면 속성 창이 뜬다.

     

C/C++ General 탭 -> Paths and Symbols 탭으로 이동하여 GNU C++ 항목에서 Includes 탭을 보자. 이곳에서 Add 버튼을 클릭하여 INCLUDE 환경 변수의 값을 하나 하나씩 넣자. 반드시 경로를 ';' 로 붙여져 있는 것은 분리해서 하나 하나씩 입력해야 한다.

마찬가지로 Libraries 탭으로 이동한 후 LIB 환경 변수의 경로 값을 하나씩 입력하자.

     

6. 이제 Eclipse에서 Visual C++ 개발 환경을 구성하는 것이 모두 완료되었다.

#include 파일 목록이 보이지 않았고 Intellisense가 동작하지 않았었는데, 이제 모두 동작한다.

     

     

부록으로 아래와 같은 오류 메시지를 만날 경우 대처 방법이다.

오류 1 : 컴파일 시에 발생한 오류인데, iostream 헤더 파일을 찾을 수 없어서 발생하는 오류이다. 위의 3번과 4번의 방법으로 빌드 환경을 구성하자.

     

오류 2 : 이는 컴파일 중 발생한 오류처럼 보이지만, cl.exe 파일을 찾을 수 없거나 cl.exe 에 종속된 DLL을 찾지 못하는 경우 발생하는 오류이다. 1번의 SDK 가 올바르게 설치되었는지 확인하자. 설치가 올바르게 되었다면 3번과 4번을 다시 따라해보자.

    

Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 2014.02.17 11:33 Address Modify/Delete Reply

    비밀댓글입니다

    • 땡초 POWERUMC 2014.02.20 23:01 신고 Address Modify/Delete

      이클립트는 workspace마다 설정을 복제할 수 있는 것으로 알고 있거든요.
      숨김 폴더의 .eclipse 인가(가물가물), 이 폴더를 복사하시면 됩니다.

  2. 경준씨 2014.03.06 21:50 Address Modify/Delete Reply

    http://msdn.microsoft.com/ko-KR/windows/hardware/gg454513
    Windows 8.1 SDK가 업데이트 되었습니다.
    수정 바랍니다.

    • 땡초 POWERUMC 2014.03.06 23:03 신고 Address Modify/Delete

      아래의 링크를 보시면 이렇게 써있네요. 잘못 알고 계신 것 같은데요?

      명령줄 빌드 환경
      Windows SDK는 더 이상 전체 명령줄 빌드 환경을 제공하지 않습니다. 대신 Windows SDK를 사용하려면 컴파일러와 빌드 환경을 별도로 설치해야 합니다.

      http://msdn.microsoft.com/ko-kr/windows/desktop/bg162891.aspx

  3. 경준씨 2014.03.06 23:39 Address Modify/Delete Reply

    맨 아래쪽에 SDK가 있습니다.

    • 땡초 POWERUMC 2014.03.07 18:22 신고 Address Modify/Delete

      SDK가 있는 건 알고 있어요.
      명령줄 빌드를 제공하지 않는다는 얘기가 써 있어요.

      제가 찾는 건 SDK가 아니랍니다.

  4. dkkim 2014.09.30 17:51 Address Modify/Delete Reply

    안녕하세요. 올리신 글 많은 도움이 됐습니다.
    한가지 질문이 있는데... 기존에 visual studio에서 개발한 c++ 소스를 말씀하신 Eclipse 환경에서 빌드하고 실행까지 되는게 확인 되는데요. 디버깅이 잘 안되는데 따로 설정할 것이 있을까요?