Я отлаживал проект, который зависит от набора библиотек, включая libfreenect, OpenGL и OpenCL. Проблема в том, что черный экран был выходом.Порядок связанных библиотек C++ linker
В качестве опции отладки я полностью удалил код OpenCL и связанную библиотеку, пытаясь убедиться, что OpenGL работает нормально и, к счастью, это так.
То, что я заметил, и не понимаю, что мой проект хорошо работает, используя этот порядок библиотек
-lfreenect -lGL -lglut -lGLU -lOpenCL
С другой стороны, черный экран дается при использовании этого порядка
-lfreenect -lOpenCL -lGL -lglut -lGLU
Мой вопрос: почему порядок связанных библиотек влияет на выход программы?
В чем вопрос? – n0rd
опубликуйте фрагмент исходного кода, на который влияет заказ. Трудно сделать вывод о том, сколько информации вы предоставили. – Barracuda
Если две библиотеки содержат одну и ту же точку входа, она будет использовать первую найденную, которая была бы одной из первой указанной библиотеки. Я подозреваю, что OpenCL и GL могут иметь общие точки входа в вашей системе. Кстати, все эти заказы выглядят сомнительными. '-lglut' и' -lGLU' всегда должны быть перед '-lGL'. –