Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cmake项目的CG运行时链接器错误(g+;+;)_C++_Gcc_G++_Cmake_Cg - Fatal编程技术网

C++ cmake项目的CG运行时链接器错误(g+;+;)

C++ cmake项目的CG运行时链接器错误(g+;+;),c++,gcc,g++,cmake,cg,C++,Gcc,G++,Cmake,Cg,我收到以下链接器错误: /usr/bin/ld:找不到-lCg /usr/bin/ld:找不到-lCgGL 我在这里使用FindCg.cmake frome: 然后使用目标链接库添加找到的库 当我使用VERBOSE=1运行make时(见下文),它似乎通过了库的正确路径(/usr/lib64/libcgl.so和/usr/lib64/libCg.so) ========================================== 编辑: 在按照弗雷泽在下面的回复中的建议删除了cmake文件

我收到以下链接器错误: /usr/bin/ld:找不到-lCg /usr/bin/ld:找不到-lCgGL

我在这里使用FindCg.cmake frome:

然后使用目标链接库添加找到的库

当我使用VERBOSE=1运行make时(见下文),它似乎通过了库的正确路径(/usr/lib64/libcgl.so和/usr/lib64/libCg.so)

========================================== 编辑:

在按照弗雷泽在下面的回复中的建议删除了cmake文件中的link_目录行之后,我得到了这个输出

01- 1:58:59 loony@T-linux> make FightSpace VERBOSE=1
/usr/bin/cmake -H/home/loony/git/tengine -B/home/loony/git/tengine/build --check-build-system CMakeFiles/Makefile.cmake 0
make -f CMakeFiles/Makefile2 FightSpace
make[1]: Entering directory `/home/loony/git/tengine/build'
/usr/bin/cmake -H/home/loony/git/tengine -B/home/loony/git/tengine/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/loony/git/tengine/build/CMakeFiles 91
make -f CMakeFiles/Makefile2 Code/FightSpace/CMakeFiles/FightSpace.dir/all
make[2]: Entering directory `/home/loony/git/tengine/build'
make -f Code/TEPlatform/CMakeFiles/TEPlatform.dir/build.make Code/TEPlatform/CMakeFiles/TEPlatform.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TEPlatform /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TEPlatform /home/loony/git/tengine/build/Code/TEPlatform/CMakeFiles/TEPlatform.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TEPlatform/CMakeFiles/TEPlatform.dir/build.make Code/TEPlatform/CMakeFiles/TEPlatform.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TEPlatform/CMakeFiles/TEPlatform.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  57
[  1%] Built target TEPlatform
make -f Code/TECore/CMakeFiles/TECore.dir/build.make Code/TECore/CMakeFiles/TECore.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TECore /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TECore /home/loony/git/tengine/build/Code/TECore/CMakeFiles/TECore.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TECore/CMakeFiles/TECore.dir/build.make Code/TECore/CMakeFiles/TECore.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TECore/CMakeFiles/TECore.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
[ 40%] Built target TECore
make -f Code/TEngine/CMakeFiles/TEngine.dir/build.make Code/TEngine/CMakeFiles/TEngine.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TEngine /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TEngine /home/loony/git/tengine/build/Code/TEngine/CMakeFiles/TEngine.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TEngine/CMakeFiles/TEngine.dir/build.make Code/TEngine/CMakeFiles/TEngine.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TEngine/CMakeFiles/TEngine.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  82 83 84 85 86 87 88 89 90 91 92 93
[ 53%] Built target TEngine
make -f Code/TETransformSystem/CMakeFiles/TETransformSystem.dir/build.make Code/TETransformSystem/CMakeFiles/TETransformSystem.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TETransformSystem /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TETransformSystem /home/loony/git/tengine/build/Code/TETransformSystem/CMakeFiles/TETransformSystem.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TETransformSystem/CMakeFiles/TETransformSystem.dir/build.make Code/TETransformSystem/CMakeFiles/TETransformSystem.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TETransformSystem/CMakeFiles/TETransformSystem.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  79 80 81
[ 57%] Built target TETransformSystem
make -f Code/TEPhysics/CMakeFiles/TEPhysics.dir/build.make Code/TEPhysics/CMakeFiles/TEPhysics.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TEPhysics /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TEPhysics /home/loony/git/tengine/build/Code/TEPhysics/CMakeFiles/TEPhysics.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TEPhysics/CMakeFiles/TEPhysics.dir/build.make Code/TEPhysics/CMakeFiles/TEPhysics.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TEPhysics/CMakeFiles/TEPhysics.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  52 53 54 55
[ 61%] Built target TEPhysics
make -f Code/TERendering/CMakeFiles/TERendering.dir/build.make Code/TERendering/CMakeFiles/TERendering.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TERendering /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TERendering /home/loony/git/tengine/build/Code/TERendering/CMakeFiles/TERendering.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TERendering/CMakeFiles/TERendering.dir/build.make Code/TERendering/CMakeFiles/TERendering.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TERendering/CMakeFiles/TERendering.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
[ 84%] Built target TERendering
make -f Code/TEGraphicsSystem/CMakeFiles/TEGraphicsSystem.dir/build.make Code/TEGraphicsSystem/CMakeFiles/TEGraphicsSystem.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TEGraphicsSystem /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TEGraphicsSystem /home/loony/git/tengine/build/Code/TEGraphicsSystem/CMakeFiles/TEGraphicsSystem.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TEGraphicsSystem/CMakeFiles/TEGraphicsSystem.dir/build.make Code/TEGraphicsSystem/CMakeFiles/TEGraphicsSystem.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TEGraphicsSystem/CMakeFiles/TEGraphicsSystem.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  41 42 43 44 45 46
[ 91%] Built target TEGraphicsSystem
make -f Code/TEInputSystem/CMakeFiles/TEInputSystem.dir/build.make Code/TEInputSystem/CMakeFiles/TEInputSystem.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/TEInputSystem /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/TEInputSystem /home/loony/git/tengine/build/Code/TEInputSystem/CMakeFiles/TEInputSystem.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/TEInputSystem/CMakeFiles/TEInputSystem.dir/build.make Code/TEInputSystem/CMakeFiles/TEInputSystem.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
make[3]: Nothing to be done for `Code/TEInputSystem/CMakeFiles/TEInputSystem.dir/build'.
make[3]: Leaving directory `/home/loony/git/tengine/build'
/usr/bin/cmake -E cmake_progress_report /home/loony/git/tengine/build/CMakeFiles  47 48 49 50 51
[ 96%] Built target TEInputSystem
make -f Code/FightSpace/CMakeFiles/FightSpace.dir/build.make Code/FightSpace/CMakeFiles/FightSpace.dir/depend
make[3]: Entering directory `/home/loony/git/tengine/build'
cd /home/loony/git/tengine/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/loony/git/tengine /home/loony/git/tengine/Code/FightSpace /home/loony/git/tengine/build /home/loony/git/tengine/build/Code/FightSpace /home/loony/git/tengine/build/Code/FightSpace/CMakeFiles/FightSpace.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/loony/git/tengine/build'
make -f Code/FightSpace/CMakeFiles/FightSpace.dir/build.make Code/FightSpace/CMakeFiles/FightSpace.dir/build
make[3]: Entering directory `/home/loony/git/tengine/build'
Linking CXX executable ../../../Executables/FightSpace
cd /home/loony/git/tengine/build/Code/FightSpace && /usr/bin/cmake -E cmake_link_script CMakeFiles/FightSpace.dir/link.txt --verbose=1
/usr/bin/c++       CMakeFiles/FightSpace.dir/main.cpp.o CMakeFiles/FightSpace.dir/FightSpaceGame.cpp.o CMakeFiles/FightSpace.dir/TEAssetImporter.cpp.o  -o ../../../Executables/FightSpace  -L/opt/boost/lib  -L/home/loony/git/tengine/Code/FightSpace  -L/home/loony/git/tengine/Code/TECore/Events  -L/home/loony/git/tengine/Code/TECore/Intersection  -L/home/loony/git/tengine/Code/TECore/Math  -L/home/loony/git/tengine/Code/TECore/Network  -L/home/loony/git/tengine/Code/TECore/Resources  -L/home/loony/git/tengine/Code/TECore/IO  -L/home/loony/git/tengine/Code/TECore/Images  -L/home/loony/git/tengine/Code/TECore/Utils  -L/home/loony/git/tengine/Code/TEPhysics/Collision  -L/home/loony/git/tengine/Code/TEPhysics/Physics  -L/home/loony/git/tengine/Code/TEngine/Engine  -L/home/loony/git/tengine/Code/TEPlatform  -L/home/loony/git/tengine/Code/TEPlatform/Win  -L/home/loony/git/tengine/Code/TEPlatform/Linux  -L/home/loony/git/tengine/Code/TEGraphicsSystem  -L/home/loony/git/tengine/Code/TETransformSystem  -L/home/loony/git/tengine/Code/TEInputSystem -rdynamic ../TECore/libTECore.a ../TEngine/libTEngine.a ../TEGraphicsSystem/libTEGraphicsSystem.a ../TEPhysics/libTEPhysics.a ../TETransformSystem/libTETransformSystem.a ../TEPlatform/libTEPlatform.a ../TEInputSystem/libTEInputSystem.a -lCg -lCgGL ../TERendering/libTERendering.a ../../../Externals/glew-1.7.0/lib/glew32.lib -lCg -lCgGL -lGLU -lGL -lSM -lICE -lX11 -lXext ../TEngine/libTEngine.a ../TECore/libTECore.a ../TEPlatform/libTEPlatform.a ../../../Externals/jsoncpp-src-0.5.0/buildscons/linux-gcc-4.7.2/src/lib_json/libjson_linux-gcc-4.7.2_libmt.a -Wl,-rpath,/opt/boost/lib:/home/loony/git/tengine/Code/FightSpace:/home/loony/git/tengine/Code/TECore/Events:/home/loony/git/tengine/Code/TECore/Intersection:/home/loony/git/tengine/Code/TECore/Math:/home/loony/git/tengine/Code/TECore/Network:/home/loony/git/tengine/Code/TECore/Resources:/home/loony/git/tengine/Code/TECore/IO:/home/loony/git/tengine/Code/TECore/Images:/home/loony/git/tengine/Code/TECore/Utils:/home/loony/git/tengine/Code/TEPhysics/Collision:/home/loony/git/tengine/Code/TEPhysics/Physics:/home/loony/git/tengine/Code/TEngine/Engine:/home/loony/git/tengine/Code/TEPlatform:/home/loony/git/tengine/Code/TEPlatform/Win:/home/loony/git/tengine/Code/TEPlatform/Linux:/home/loony/git/tengine/Code/TEGraphicsSystem:/home/loony/git/tengine/Code/TETransformSystem:/home/loony/git/tengine/Code/TEInputSystem
/usr/bin/ld: cannot find -lCg
/usr/bin/ld: cannot find -lCgGL
/usr/bin/ld: cannot find -lCg
/usr/bin/ld: cannot find -lCgGL
collect2: error: ld returned 1 exit status
make[3]: *** [../Executables/FightSpace] Error 1
make[3]: Leaving directory `/home/loony/git/tengine/build'
make[2]: *** [Code/FightSpace/CMakeFiles/FightSpace.dir/all] Error 2
make[2]: Leaving directory `/home/loony/git/tengine/build'
make[1]: *** [Code/FightSpace/CMakeFiles/FightSpace.dir/rule] Error 2
make[1]: Leaving directory `/home/loony/git/tengine/build'
make: *** [FightSpace] Error 2
~/git/tengine/build @ (git::master)
01- 1:59:08 loony@T-linux>

以下部分看起来可疑:

-L
后面应该跟一个目录路径,链接器在查找通过
-L
指定的后续lib时将搜索该目录

在本例中,我希望是
-L/usr/lib64

您确定在调用中包含了
${CG\u LIBRARY}
${CG\u glu LIBRARY}
,而不是错误调用吗


编辑

根据以下评论,您可以执行以下操作以使工作正常进行:

get_filename_component(CgLibPath ${CG_LIBRARY} PATH)
get_filename_component(CgGlLibPath ${CG_GL_LIBRARY} PATH)
link_directories(${CgLibPath} ${CgGlLibPath})

这应该是可行的,但请注意,即使在其自己的文档中,也不建议使用
链接目录。

我实际上是将其与目标链接库和链接目录一起使用的。。但是在删除link_directories行之后,我仍然会收到相同的错误。。我用新的输出更新了我的问题,现在它根本没有-L?也没有;message(${Cg\u LIBRARIES})和message(${Cg\u GL\u LIBRARIES})打印出文件的完整路径。奇怪。您能显示您的确切的
target\u link\u库
调用吗?elseif(UNIX)target\u link\u库(TERendering TECore TEPlatform${glew\u库}${Cg\u库}${Cg\u GL\u库}${OPENGL\u库})endif()
-L/usr/lib64/libCg.so  -L/usr/lib64/libCgGL.so
get_filename_component(CgLibPath ${CG_LIBRARY} PATH)
get_filename_component(CgGlLibPath ${CG_GL_LIBRARY} PATH)
link_directories(${CgLibPath} ${CgGlLibPath})