1

Тема: Xcode цикл

Хай, хтось працює в xcode використовуючи OpenGL? Чомусь виникає така проблема


Cycle inside лабораторна комп; building could produce unreliable results.
Cycle details:
→ Target 'лабораторна комп'ютерна графіка 3.0' has copy command from '/usr/local/Cellar/glew/2.2.0_1/lib/libGLEW.2.2.0.dylib' to '/Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/libGLEW.2.2.0.dylib'
○ Target 'лабораторна комп'ютерна графіка 3.0' has link command with output '/Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/лабораторна комп'ютерна графіка 3.0'
○ Target 'лабораторна комп'ютерна графіка 3.0' has copy command from '/usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib' to '/Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/libglfw.3.3.dylib'


Raw dependency cycle trace:

target:  ->

node: <all> ->

command: <all> ->

node: /Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/libGLEW.2.2.0.dylib ->

command: P0:target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722-:Debug:Copy /Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/libGLEW.2.2.0.dylib /usr/local/Cellar/glew/2.2.0_1/lib/libGLEW.2.2.0.dylib ->

CYCLE POINT ->

node: <target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722--fused-phase1-copy-files> ->

command: P2:::Gate target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722--fused-phase1-copy-files ->

node: <target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722--fused-phase0-compile-sources&link-binary> ->

command: P2:::Gate target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722--fused-phase0-compile-sources&link-binary ->

node: /Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Intermediates.noindex/лабораторна комп'ютерна графіка 3.0.build/Debug/лабораторна комп'ютерна графіка 3.0.build/Objects-normal/x86_64/лабораторна комп'ютерна графіка 3.0_dependency_info.dat ->

command: P1:target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722-:Debug:Ld /Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/лабораторна комп'ютерна графіка 3.0 normal ->

node: /Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/libglfw.3.3.dylib ->

command: P0:target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722-:Debug:Copy /Users/ruslan/Library/Developer/Xcode/DerivedData/лабораторна_комп'ютерна_графіка_3.0-guyzooutypuxthfhhmwbuudvabkd/Build/Products/Debug/libglfw.3.3.dylib /usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib ->

node: <target-лабораторна комп'ютерна графіка 3.0-24fe7a1d4214ea0a4aa8dd9553f7d2c8f6757a7125512841ad24eaf114651722--fused-phase1-copy-files>

2 Востаннє редагувалося Droid 77 (26.04.2023 21:54:08)

Re: Xcode цикл

Цикл в циклі = поганий смак.
Саме це Вам і підказує середовище розробки.

Подякували: peep1

3 Востаннє редагувалося wander (27.04.2023 12:05:39)

Re: Xcode цикл

Ну, почнімо з того, що сама проблема ніяк не пов'язана з OpenGL.
Розкажіть, яка у вас версія Xcode та MacOS? А також, які бібліотеки ви підключаєте та як? Я бачу у логах glew та glfw, також покажіть, що у вас у Build Phase та яка Build System висталена у Workspace Settings.

Прихований текст

Я б не використовував glew.
І проєкт би українською не називав..

Подякували: leofun01, peep2

4

Re: Xcode цикл

Версія ос monterey 12.6.5, версія xcode 14.2, бібліотеки такі https://drive.google.com/file/d/1RI2uACSmKvbv7oVqugfbmlZXgKgP-NJF/view?usp=share_link
Підключаю з таким порядком як на фото додаю просто у розділі general в Xcode хедери підключаю по шляху /usr/local/include. У  Build Phase ось:https://drive.google.com/file/d/1sCZ3UZptQFEHVgdqh75zNBVqtmaKOaYo/view?usp=share_link. Створив новий проект і назвав латиною у нього додав всі ті самі бібліотеки що і в попередній і написав щоб виводило hello world для тесту але проблема не зникає https://drive.google.com/file/d/1_7gagrzhhzMRCpGo5nTBg0ehlvMEYNsv/view?usp=share_link https://drive.google.com/file/d/1VSj5qakVOascsjGNZliUw6UQNO1khirv/view?usp=share_link. На рахунок яка Build System висталена у Workspace Settings не знайшов де це. І на рахунок не використовувати glew 1.Чому? 2.Не можу тому що вимагають його

5

Re: Xcode цикл

peep, залийте картинки нормально на хостинг та вставте сюди.

peep написав:

І на рахунок не використовувати glew 1.Чому? 2.Не можу тому що вимагають його

Він трохи застарілий та має деякі баги (для когось вони досить критичні, хоча, ймовірно, це не ваш випадок), які не виправляють роками.
Якщо коротко то GLEW:

  • Не генерує та не обробляє функції належним чином. Одним із прикладів є функції VAO, які є частиною ядра OpenGL3+. Однак через поганий спосіб генерації заголовків GLEW за замовчуванням завантажуватиме вказівники на функції, лише якщо доступний GL_ARB_vertex_array_object – навіть якщо використовується контекст GL3.

  • Не завантажує розширення належним чином у GL3+.

  • glewExperimental — це абсолютно зламана фіча. GLEW просто намагається завантажити вказівники на всі назви функцій з усіх розширень.

Можливо станом на зараз і щось змінилось, я точно не знаю. Але чудово пам'ятаю скільки болю він завдав моїй п'ятій точці :D
Ось тут ще деякі додаткові приклади проблем. Why not use libGLEW?

Прихований текст

Ну, якщо вимагають, то використовуйте. Хоча я цього і не розумію, GLEW легко можна замінити.

Подякували: leofun01, peep2

6

Re: Xcode цикл

Версія ос monterey 12.6.5, версія xcode 14.2, бібліотеки такі
https://i.ibb.co/zGCxhDZ/2023-04-28-18-27-51.png

Підключаю з таким порядком знизу вверх як на фото додаю.

У розділі general в Xcode хедери підключаю по шляху /usr/local/include.

У  Build Phase ось:
https://i.ibb.co/dMS3fk3/2023-04-28-18-17-00.png

Створив новий проект і назвав латиною у нього додав всі ті самі бібліотеки що і в попередній і написав щоб виводило hello world для тесту але проблема не зникає(

На рахунок яка Build System висталена у Workspace Settings не знайшов де це.

7

Re: Xcode цикл

Гм, гаразд..

  1. У Build Settings вашого проєкту (переконайтесь, що ви вибрали саме target, а не project) в секції Search Paths мають бути такі шляхи:
    Header Search Paths -> /usr/local/include
    Library Search Paths -> /usr/local/lib

  2. У вкладці Build Phases в розділі Link With Binary Libraries підключайте OpenGL.framework потім GLFW та GLEW. У розділі Embed Libraries по ідеї не мало б бути нічого, це вам XCode сам то вставив? Спробуйте видалити, їх.

  3. Йдіть у File -> Workspace Settings -> Build System та переконайтесь, що там виставлено New Build System.

  4. У main.cpp видаліть будь-які підключення хедерів окрім <iostream>.

  5. Зробіть спочатку Clean, а потім Build.

Прихований текст

У вас система часом не на М1/2 чіпі?
І, як я пам'ятаю в macos для OpenGL 3.2+ загалом не обов'язково підключати лоадери типу GLEW, там можна обійтись і просто підключенням <OpenGL/gl3.h>. Хоча, можливо я помиляюсь..

8

Re: Xcode цикл

1.Так обраний саме таргет та шляхи співпадають
2.Підключив у названому вами порядку та видалив все у розділі Embed Libraries
3.Так і не можу знайти цього розділу(
https://i.ibb.co/bK2Wt1W/2023-05-01-19-21-49.png
https://i.ibb.co/Y8vWtGN/2023-05-01-19-21-36.png
https://i.ibb.co/nDKLN7Z/2023-05-01-19-21-41.png

4.Зробив
5.Зробив
6.Ні x86

9 Востаннє редагувалося wander (01.05.2023 21:41:52)

Re: Xcode цикл

І все та ж помилка, вірно?
Гм, гаразд, тоді я пропоную йти іншим шляхом. Будемо пробувати не лінкувати спершу і потім підключати хедери, а навпаки.

1. Рекомендую створити новий проєкт, на всякий (знаю, це вас вже певно втомило, але так буде простіше).
2. У main.cpp підключайте #include <GLFW/glfw3.h>, щось типу такого:

#include <GLFW/glfw3.h>
#include <iostream>
int main() {
    if (!glfwInit()) {
        std::cout << "Failed to initialize GLFW" << std::endl;
        return -1;
    }
    std::cout << "Hello, world!" << std::endl;
}

3. Пробуєте компілювати, якщо все ОК, то має бути помилка 'GLFW/glfw3.h' file not found або схожа.
4. Тепер ваше завдання правильно прописати шлях до хедера у Header Search Paths, щоб зникла помилка компіляції й з'явились помилки лінкування. Якщо все зробите вірно, то повинно видати помилку типу: Undefined symbol: _glfwInit. Це означатиме, що компілятор знайшов хедер GLFW/glfw3.h, проте не може знайти реалізацію, тут він очікує на бібліотеку libglfw3.3.dylib.
5. І нарешті, підключайте бібліотеку GLFW у Link With Binary Libraries, щоб зникла попередня помилка.
6. Після всіх цих маніпуляцій, у вас має зібратись та запуститись ваш проєкт та вивести Hello, world!.
7. Проробляєте всі ці пункти, починаючи з 1 і з GLEW, аж допоки все не буде успішно збиратися. І, так OpenGL.framework ймовірно варто буде підключити на 5 пункті, коли ж підключатимете і GLFW, бо проблема точно не у ньому.

Ну, якось так.

Подякували: peep1

10

Re: Xcode цикл

Доброго дня, мабуть це теж вас вже втомило) але проробив всі названі вами пункти і дійсно спочатку видавало помилку 'GLFW/glfw3.h' file not found після прописання шляху до хедера у Header Search Paths дійсно отримав помилку Undefined symbol: _glfwInit, але після підключення libglfw.3.3.dylib попередня помилка зникла, але (Hello world!) не вивело а почало писати ось таку помилку

dyld[34962]: Library not loaded: '/usr/local/opt/glfw/lib/libglfw.3.dylib'
  Referenced from: '/Users/ruslan/Library/Developer/Xcode/DerivedData/test2-cwnqimikpijulyctwqstcdbkkrea/Build/Products/Debug/test2'
  Reason: tried: '/Users/ruslan/Library/Developer/Xcode/DerivedData/test2-cwnqimikpijulyctwqstcdbkkrea/Build/Products/Debug/libglfw.3.dylib' (no such file), '/usr/lib/system/introspection/libglfw.3.dylib' (no such file), '/usr/local/opt/glfw/lib/libglfw.3.dylib' (code signature in <1120E0F4-F474-3660-9FA9-22CE6DFD2DCA> '/usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.), '/usr/local/lib/libglfw.3.dylib' (code signature in <1120E0F4-F474-3660-9FA9-22CE6DFD2DCA> '/usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.), '/usr/lib/libglfw.3.dylib' (no such file), '/Users/ruslan/Library/Developer/Xcode/DerivedData/test2-cwnqimikpijulyctwqstcdbkkrea/Build/Products/Debug/libglfw.3.3.dylib' (no such file), '/usr/lib/system/introspection/libglfw.3.3.dylib' (no such file), '/usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib' (code signature in <1120E0F4-F474-3660-9FA9-22CE6DFD2DCA> '/usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.), '/usr/local/lib/libglfw.3.3.dylib' (code signature in <1120E0F4-F474-3660-9FA9-22CE6DFD2DCA> '/usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.), '/usr/lib/libglfw.3.3.dylib' (no such file)
(lldb) 

Ось фото: https://i.ibb.co/GCSGLCS/2023-05-04-13-37-06.png

Якщо це важливо то
1.Всі бібліотеки встановлював через Homebrew
2.Шлях до підключеної бібліотеки: /usr/local/Cellar/glfw/3.3.8/lib/libglfw.3.3.dylib
3.Шлях до хедерів: /usr/local/include
4.У Library Search Paths у цому проєкті я нічого не змінював тільки у Header Search Paths прописав цей шлях /usr/local/include
5. Також ніяких файлів з розширенням ".h" не додавав тобто це виглядає так https://i.ibb.co/9nDrctb/2023-05-04-13-47-55.png
але я їх підключив потім так теж видавало таку помилку



Іще питання чи є різниця між підключенням бібліотек ось тут: https://i.ibb.co/d58nP5y/photo-2023-05-04-13-50-19.jpg

і ось тут: https://i.ibb.co/Bt0V17T/photo-2023-05-04-13-50-17.jpg

11

Re: Xcode цикл

peep, схоже щось не сподобалось Хкоду з підписом.. Спробуйте відключити цю перевірку для бібліотек.
Перейдіть до розділу Hardened Runtime у вкладці Signing & Capabilities. Та виставте прапорець навпроти Disable Library Validation. Це б мало допомогти.

Прихований текст

https://i.ibb.co/myGMsZS/image.png

peep написав:

Іще питання чи є різниця між підключенням бібліотек ось тут:

По ідеї не мало б бути різниці..

Подякували: peep1

12

Re: Xcode цикл

Все, зробив, все на перший погляд працює величезне вам дякую за те що допомогли  :)  :)  *YAHOO* хоча я докінця і не зрозумів у чому саме у мене була помилка) ну думаю колись зрозумію, ще раз дякую :)

Подякували: wander1