반응형

OS: Ubuntu 14.04 (amd64)

g++ version: 4.8.4

Eclipse: Mars, Neon



이클립스(Eclipse)에서 C++2011  문법(std::thread나 향상된 for loop 같은 것)을 쓰려고 하면 빌드 설정에 -std=c++0x 또는 -std=c++11 같은 플래그를 추가해 두어도 정작 에디터에서 계속 syntax error를 표시하는 경우가 있다.


(이클립스 에디터가 C++11 문법에 따라 쓴 std::thread 코드를 

unresolved symbol error로 표시하고 있다.)



해결하려면, 프로젝트 이름에 마우스 오른쪽 단추를 누르고 Properties로 가서,

C/C++ General > Preprocessor Include Paths, Macros etc.로 간 다음,

Providers 탭에서 CDT GCC Build-in Compiler Settings를 선택한다.


그리고 하단에 "Use global provider shared between projects" 선택을 해제하고,

Command to get compiler specs 칸에 -std=c++0x 를 추가한다.


또한 순서상 중간 쯤에 와 있는 CDT GCC Build-in Compiler Settings 항목을 Move Up을 이용해서 가장 위로 끌어올린 뒤에 Apply 버튼과 OK 버튼을 누른다.




마지막으로, 이클립스 메뉴에서 

Project > C/C++ Index > Re-resolve Unresolved Includes

Project > C/C++ Index > Freshen All Files

Project > C/C++ Index > Rebuild

를 차례대로 눌러 주면 에러로 표시하지 않게 된다.


(C++ 2011 문법의 syntax error가 해결된 이후의 에디터 화면)




<참고자료>

[1] http://stackoverflow.com/questions/17457069/enabling-c11-in-eclipse-juno-kepler-luna-cdt



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04.2 LTS (amd64)

Type: Eclipse C/C++ Developer, version: Mars.1



이클립스 CDT에 플러그인 설치를 하다가 오류가 나고 매우 느려져서 강제종료를 했더니, 그 후로 이클립스가 시작이 되지 않았다. 더 자세하게 살펴보면, 이클립스가 시작은 되는데 workspace 를 로드하는 과정에서 에러를 겪으면서 종료된다. 에러 메세지는 다음과 같다:

An error has occurred. See the log file

이클립스의 workspace 디렉토리 위치/.metadata/.log.


즉, 새로운 workspace를 만들어서 실행할 수는 있지만 그러면 기존 프로젝트들을 다시 로드하는 것이 귀찮으므로 가급적이면 기존 workspace를 살리는 방법을 찾아야 한다.


여러가지 해결 방법이 있는데, 가장 먼저 이클립스의 workspace 디렉토리 위치/.metadata/.plugins/org.eclipse.core.resources 디렉토리에 있는 .snap 파일을 모두 지우는 것(예: 50.snap)이다.

아쉽게도 나는 이렇게 해도 같은 에러가 나오면서 해결되지 않았다.


두번째 방법으로는 이클립스를 실행할 때, " -clean" 옵션을 주는 것.

이클립스 실행파일 위치에 가서 콘솔에서 $ ./eclipse -clean 을 실행한다.

아쉽게도, 이 방법 또한 효과가 없었다.


대체로 위의 2가지 방법만 언급하는데, StackOverflow에는 다행히 다른 방법이 또 있었다. 

(사실상 기존 workspace를 리셋하는 것과 다를 바가 없지만...)

참조 URL: http://stackoverflow.com/questions/15333825/an-error-has-occured-please-see-log-file-eclipse-juno


아예 이클립스의 workspace 디렉토리 위치/.metadata 디렉토리를 통째로 다른 곳에 백업해 둔다.

그리고 이클립스를 실행하고 해당 workspace를 선택하면, 

이클립스는 마치 맨 처음 실행되는 것처럼 아무 프로젝트도 없이(ㅠㅠ) 켜진다.

그다음 File > Import... > General > Existing Projects into Workspace 선택,

Select root directory: 항목에 기존의 workspace 디렉토리 선택,

그리고 Finish 하면 workspace에 있던 모든 기존 프로젝트들이 나타난다.



반응형
블로그 이미지

Bryan_

,
반응형

OS: Windows 8.1 (64-bit)

Java: 1.8.0_60

Eclipse: Mars (64-bit)

프로젝트가 사용하는 JRE System Library: JavaSE-1.7



이클립스에서 프로젝트를 Export 명령으로 Runnable JAR 파일을 만들고 다른 환경(예를 들면 리눅스가 돌아가는 보드PC 같은 곳)에서 실행하려고 했는데 다음과 같은 에러가 발생했다:




Exception in thread "main" java.lang.UnsupportedClassVersionError: [실행하려는 클래스 이름] : Unsupported major.minor version 52.0

        at java.lang.ClassLoader.defineClass1(Native Method)

        at java.lang.ClassLoader.defineClass(ClassLoader.java:788)

        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14                                                                    2)

        at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)

        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)



일단 .jar 파일을 돌리려는 대상 보드PC (Odroid)에 설치된 자바는 OpenJDK고 버전이 1.7.0_25다.
이클립스 프로젝트에서 JRE 라이브러리는 비록 1.7로 되어 있었지만, 이클립스가 실제로 사용하는 컴파일러는 1.8로 되어 있었기에 빌드한 버전이 맞지 않아서 생기는 문제였다.

해결하려면 Window > Preferences 에 가서,
Java > Compiler를 선택하고, 오른쪽에 보이는 화면에서 Compiler compliance level을 1.7로 설정한다.


그러면 현재 프로젝트들을 모두 새로 빌드할 것이다.
그 뒤에 다시 Runnable JAR 파일을 만들어서 실행하면 될 것이다.



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04.2 LTS (64-bit)

Eclipse: Eclipse IDE for C/C++ Developers, Mars Release (version 4.5.0)

QualNet: QualNet 5.0.1


QualNet 매뉴얼([QUALNET_HOME]/documentation 아래에 위치)에 보면 윈도우(Windows) 환경에서 MS Visual Studio와 연동해서 개발 환경을 구축하는 방법은 스크린샷과 함께 설명되어 있다.

리눅스 환경에서는 MS Visual Studio가 없는 대신 유명한 Eclipse가 있는데, Eclipse CDT와 연동하는 방법은 매뉴얼에 설명되어 있지 않다. (QualNet 5.2 이하 버전 기준)


그런데 Eclipse와 연동하는 방법이 의외로 간단해서 금방 설정할 수 있다. 자세한 방법은 일본어로 된 QualNet 관련 웹사이트(http://www33.atwiki.jp/ku240/pages/16.html)를 참고하였다.


0. 우선 gcc, g++ 등 C/C++ 컴파일러와 함께 QualNet이 설치되어 있어야 한다.

gcc, g++이 없으면 $ sudo apt-get install build-essential로 gcc, g++ 외에도 개발에 필요한 여러가지 도구와 라이브러리들을 한꺼번에 설치해 두면 편하다.



1. 최신 버전의 Eclipse C/C++을 다운로드 받고 설치한다. 다운로드 받은 압축파일을 적당한 곳에 압축만 풀어 두면 된다.

 - http://www.eclipse.org/downloads/

 - Eclipse IDE for C/C++ Developers

 


2. [QUALNET_HOME] 디렉토리에 가서 "Makefile" 이름의 텍스트 파일을 만들고 아래와 같이 작성한다.

all:

cd main; make -f Makefile

clean:

cd main; make clean -f Makefile

cd 글자 앞에는 반드시 탭문자(tab)를 써서 들여쓰기를 해야 한다.


참고로 [QUALNET_HOME]/main 디렉토리 밑에 gcc, glibc 버전과 32/64비트 여부에 따라 여러가지 Makefile이 구비되어 있으므로, 필요에 따라 구체적인 Makefile을 지정해도 된다. 예를 들면:

all:

cd main; make -f Makefile-linux-x86_64-glibc-2.3-gcc-4.0

clean:

cd main; make clean -f Makefile-linux-x86_64-glibc-2.3-gcc-4.0

cd 글자 앞에는 반드시 탭문자(tab)를 써서 들여쓰기를 해야 한다.



3. File > New > C++ Project 선택하고, 대화상자가 뜨면 아래와 같이 입력한다.

 - Project name: 원하는 이름으로 아무 거나

 - Location: QualNet이 설치된 디렉토리 (QUALNET_HOME의 위치)

 - Project type: Makefile project에서 Empty Project 선택

 - Toolchains: Linux GCC 선택




4. Finish 버튼을 누른다. 

Eclipse에서 초반에 소스코드 파일들 인덱싱을 하고 나면 개발환경이 완료된다. Project Explorer에서 방금 추가한 QualNet 프로젝트 이름에 마우스 오른쪽 버튼으로 클릭하고, Clean Project 또는 Build Project를 선택하면 빌드가 진행된다.

사실은 이클립스에서 빌드하는 것이나 콘솔 터미널에서 [QUALNET_HOME]/main에 가서 make 명령 수행하는 것이나 똑같기 때문에 편한 방법을 쓰면 되고, 무엇보다 리눅스 GUI 환경에서도 윈도우와 마찬가지로 소스코드를 편하게 확인할 수 있는 것이 이득이라고 생각된다.






반응형
블로그 이미지

Bryan_

,
반응형

테스트한 운영체제: MS 윈도우7 (64-bit)

이클립스 버전: Juno (4.2)


이클립스(Eclipse)에서 Subversive 플러그인과 SVN Connector, JavaHL, SVNKit 등의 플러그인을 설치하는 과정에서 예전 버전을 실수로 잘못 설치하게 되었다.


이클립스에서 모든 플러그인 설치는 Help > Install New Software... 메뉴에서 바로 할 수 있지만, 기존에 설치된 플러그인을 삭제하는 방법은 같은 위치에 없어서 헷갈리는 경우가 많다. 그래서 가장 흔히 쓰는 Subversive 플러그인을 재설치하는 과정을 메모로 남겨 둔다.



* 메뉴에서 "Help > About Eclipse" 선택

 - 대화창이 나오면 왼쪽 하단에 있는 "Installation Details" 버튼을 누른다.





* 설치된 플러그인 목록 중에서 삭제를 원하는 플러그인 이름을 선택하고, 중간 하단의 "Uninstall..." 버튼을 누른다. 

 - 아래 스크린샷에서는 버튼이 비활성화 되어 있지만, 플러그인 이름을 선택하면 Uninstall 버튼도 활성화돼서 누를 수 있다.

 - 여기서는 Subversive와 관련된 플러그인 삭제가 목적이므로 빨간색 테두리로 표시한 플러그인 전체를 다 삭제한다.





* 삭제할 플러그인 목록과 함께 최종적으로 삭제할 것인지 확인하는 대화창이 나타나면, "Finish" 버튼을 누른다. 

 - 삭제 후 재시작할 것인지 물어볼 텐데 Yes를 눌러 재시작한다.



* (이 항목은 안해도 되지만 확실한 삭제를 위해서 추가됨) 이클립스가 재시작되면 바로 검색해서 플러그인 설치를 하는 대신, 다시 이클립스를 종료하고 아래 폴더 위치에 간다. (윈도우7 기준으로 진행; 리눅스의 경우 경로를 자세히 확인하지 못한 관계로 서술하지 못한 점 양해드립니다) 그리고 해당 폴더에서 아래와 같이 삭제한다.


  • C:\Users\[사용자 계정명]\.eclipse\org.eclipse.equinox.security 폴더에서 secure_storage 파일 삭제
  • C:\Users\[사용자 계정명]\AppData\Roaming\Subversion 폴더 통째로 삭제
  • [이클립스가 설치된 폴더 위치]\plugins 폴더에서:
    • "org.polarion.eclipse.team.svn.connector"로 시작하는 폴더(보통 1개 있는 듯)
    • "org.polarion.eclipse.team.svn.connector"로 시작하는 여러 개의 jar 파일들 전부 삭제

사실 이렇게 해도 여전히 어딘가에 SVN repository 정보는 삭제되지 않고 남아있는 듯 하지만, 이정도만 해도(사실 안 해도) 재설치는 가능하다.



Help > Install New Software... 메뉴를 통해서 Subversive 플러그인을 수동 재설치한다.

 - 자세한 방법은 이전 포스팅(http://skylit.tistory.com/70)에 설명되어 있다. 간단히 요약하면: Help > Install New Software... 메뉴에 가서, 플러그인 설치 가능한 주소를 상단에 입력하고, 하단에 나열되는 목록 중 원하는 플러그인을 체크하고 설치를 진행한다.


 - Subversive 경우에는 아래와 같은 순서로 설치하게 된다:

  1. Subversive Team Provider 
  2. http://community.polarion.com/projects/subversive/download/eclipse/3.0/update-site/ 주소에서 나열되는 목록 중에서 Subversive SVN Connectors, 가장 최신 버전의 JavaHL 1.x Binaries, SVNKit 1.x Implementation, Native JavaHL 1.x Implementation 을 선택해서 설치




반응형
블로그 이미지

Bryan_

,