2016-09-22 2 views
0

Qt5, VTK, PCL 및 PDAL을 프로젝트로 컴파일 중입니다. 다른 이상한 오류를 없애기 위해 PCL을 다시 빌드하기 전까지 빌드 프로세스가 훌륭하게 작동했습니다. PCL을 연결 한 후에 Qt5에서 구문 오류가 계속 나타났습니다. 자세한 내용은 여기를 참조하십시오. Qt, VTK, PCL, and PDAL integration 최근에 root로 XCode 라이센스를 새로 구입하기로 동의 했으므로 문제가 될 수도 있습니다. 정확한 오류 :Cmake 이상한 오류 : 구문 오류 예기치 않은 토큰 ('

/bin/sh: -c: line 0: syntax error near unexpected token `(' 
/bin/sh: -c: line 0: `/usr/bin/g++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/Users/wfehrnstrom/build-CmakeTest-MainKit-Release -I/Users/wfehrnstrom/CmakeTest -I/usr/local/include/vtk-7.0 -isystem /usr/local/include -iframework /Users/wfehrnstrom/Qt5/5.7/clang_64/lib -isystem /Users/wfehrnstrom/Qt5/5.7/clang_64/lib/QtWidgets.framework/Headers -isystem /Users/wfehrnstrom/Qt5/5.7/clang_64/lib/QtGui.framework/Headers -isystem /System/Library/Frameworks/OpenGL.framework/Headers -isystem /Users/wfehrnstrom/Qt5/5.7/clang_64/lib/QtCore.framework/Headers -isystem /Users/wfehrnstrom/Qt5/5.7/clang_64/./mkspecs/macx-clang -ferror-limit=0 -O3 -DNDEBUG vtkDomainsChemistry_AUTOINIT=1(vtkDomainsChemistryOpenGL2) vtkRenderingContext2D_AUTOINIT=1(vtkRenderingContextOpenGL2) vtkRenderingCore_AUTOINIT=3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2) vtkRenderingVolume_AUTOINIT=1(vtkRenderingVolumeOpenGL2) -fPIC -std=gnu++11 -o CMakeFiles/CmakeTest.dir/main.cpp.o -c  /Users/wfehrnstrom/CmakeTest/main.cpp' 
make[2]: *** [CMakeFiles/CmakeTest.dir/main.cpp.o] Error 2 
make[1]: *** [CMakeFiles/CmakeTest.dir/all] Error 2 
make: *** [all] Error 2 
내가 VTK 및 PCL 재건 후 갑자기 보이는이 이상한 오류가있는 이유

사람이 알고 있나요? 감사합니다!

+0

, 나는 지금 find_package (VTK 7.0.0 필수) 내 프로젝트에 대한 오류를 발생 CMakeLists.txt의 라인은 결정했다. – user3833261

+0

이것은 또한 링크 오류가 아니라 컴파일시 오류가있는 것처럼 보입니다. 프로젝트 메이크 파일이 잘 생성되기 때문에 – user3833261

+0

스택 오버플로 질문에 대한 업데이트는 ** 코멘트가 아닌 ** 질문 게시 편집 **을 통해 표현되어야합니다. 오류 메시지는'vtkDomainsChemistry_AUTOINIT = 1 (vtkDomainsChemistryOpenGL2)'와 같은 컴파일러 정의에 의해 발생합니다. 값을 제외하고는'()'(이것은 쉘에서 에러를 일으킴)을 포함하고 있습니다. 그것은 진정한 컴파일러 정의는 아니며'-D' 옵션으로 시작하지 않습니다. 아마도 VTK에 대한 잘못된 것입니다. VTK는 분명히 그러한 정의의 원점입니다. – Tsyvarev

답변

1

OS X에서 QT5로 PCL을 가져올 때 똑같은 문제가 발생했습니다.

소스에서 PCL 1.8을 컴파일하면 문제가 해결됩니다 (PCL 1.6에서 마이그레이션 됨).

CMakeLists.txt : 갱신으로

project(LRS_PCL) 
set(CMAKE_C_COMPILER "/usr/bin/gcc") 
set(CMAKE_CXX_COMPILER "/usr/bin/g++") 
cmake_minimum_required(VERSION 2.8) 

set(SOURCE_DIR .) 
set(SOURCE 
    ${SOURCE} 
    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp 
    PARENT_SCOPE 
) 
aux_source_directory(. SRC_LIST) 
add_executable(${PROJECT_NAME} ${SRC_LIST}) 
set(CMAKE_PREFIX_PATH $ENV{HOME}/Qt/5.5/gcc_64) 

find_package(PCL 1.8 REQUIRED) 
find_package(Qt5 REQUIRED COMPONENTS Widgets Core) 

include(CheckCXXCompilerFlag) 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

include_directories(${PCL_INCLUDE_DIRS} /user/local/include) 
link_directories(${PCL_LIBRARY_DIRS} /usr/local/lib /usr/lib/x86_64-linux-gnu) 
add_definitions(${PCL_DEFINITIONS}) 

target_link_libraries(LRS_PCL ${PCL_LIBRARIES} /usr/local/lib/librealsense.so) 
관련 문제