【发布时间】:2016-09-22 04:28:06
【问题描述】:
我正在将 Qt5、VTK、PCL 和 PDAL 编译到一个项目中,并且在我重建 PCL 之前,我的构建过程运行良好,因为我试图摆脱另一个奇怪的错误,即链接后在 Qt5 中不断弹出语法错误PCL。有关这方面的更多信息,请参见此处:Qt, VTK, PCL, and PDAL integration 我最近还同意了根下的新 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 后突然出现这个奇怪的错误?谢谢!
【问题讨论】:
-
作为更新,我现在确定 find_package(VTK 7.0.0 REQUIRED) 是 CMakeLists.txt 中导致我的项目出错的行。
-
这似乎也不是链接错误,而是编译错误,因为项目 makefile 生成良好
-
On Stack Overflow 问题的更新应该通过编辑问题帖子本身来表达,而不是通过 cmets。至于错误信息,它是由编译器定义引起的,如
vtkDomainsChemistry_AUTOINIT=1(vtkDomainsChemistryOpenGL2)。除了包含()的值(这会导致shell 中的错误)之外,它不是真正的编译器定义——它不是以-D选项开头的。很可能,VTK 出了点问题,这绝对是这种定义的起源。
标签: c++ bash qt makefile cmake