c++ - Cmake 奇怪的错误 : Syntax Error Unexpected Token ('

标签 c++ bash qt makefile cmake

我正在将 Qt5、VTK、PCL 和 PDAL 编译到一个项目中,在我重建 PCL 之前,我的构建过程运行良好,因为我试图摆脱另一个奇怪的错误,即链接后 Qt5 中不断弹出语法错误PCL。有关这方面的更多信息,请参见此处:Qt, VTK, PCL, and PDAL integration 我最近还同意在 root 下使用新的 XCode 许可证。所以这也可能是问题所在。这是确切的错误:

/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 后莫名其妙地收到这个奇怪的错误?谢谢!

最佳答案

在 OS X 上将 PCL 拉入 QT5 时遇到了完全相同的问题。

从源代码编译 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 )

关于c++ - Cmake 奇怪的错误 : Syntax Error Unexpected Token (',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630281/

相关文章:

c++ - 用于查看 Wireshark 重置数据包的 C/C++ 应用程序

python - 将复杂的 ffmpeg 命令转换为 python3

linux - 我如何在 Linux 中禁用 90 天不活动的帐户?

c++ - 没有匹配的函数调用 std::basic_ofstream<char>::write()

c++ - boost::lexical_cast<> 的语言环境不变保证

c++ - Win32 中的 Sleep() 使程序无响应

linux - 目录中行数最多的文件不是字节

c++ - 加速 Qt 中的 Oracle 数据库接口(interface) (QOCI)

c++ - 制作工作台类型界面的想法

c++ - wxWidgets - 缺少 wx/setup.h