CMake строится на Mac в поисках неправильных архитектурных библиотекC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 CMake строится на Mac в поисках неправильных архитектурных библиотек

Сообщение Anonymous »

В сборке, которая работала совсем недавно, я вижу множество сообщений вроде:
[build] ld: warning: ignoring file
'/opt/homebrew/Cellar/sdl2_image/2.8.2_1/lib/libSDL2_image-2.0.0.dylib':
found architecture 'arm64', required architecture ‘x86_64'

Но я работаю на машине Apple Silicon Arm64! В моем файле CMakeLists.txt не указана архитектура. В последнее время ничего не обновлялось. Как это изменится и как это исправить?
Я использую MacOS 14.2.1.
Я пробовал добавить это, ничего не изменилось ошибки:
set(CMAKE_REQUIRED_LINK_OPTIONS "-arch;arm64")

Вот CMakeLists.txt:
cmake_minimum_required(VERSION 3.28)
project(my-project)

set (HALL_OF_MIRRORS hom/HallOfMirrors.cpp
hom/MirrorCore.cpp
hom/MirrorThings.cpp
hom/Thief.cpp
hom/Laser.cpp
hom/Ray.cpp
hom/LogMe.cpp)

set (MADFUNCTION Library/SpaceCalc.cpp Madfn/Madfunction.cpp Madfn/MadfnGraph.cpp)
set (JPEG true)

#set (TEST DrawboxMain.cpp Test/ControllerTry.cpp )
set (TEST DrawboxMain.cpp Test/CheckerCheckerBoardBoard.cpp Library/SDL/Keyboard.SDL.cpp)
#set (TEST Test/rtrusselsInvertingGfx.c)
#set (TEST Mini-Draw.cpp Test/MouseDraw.cpp)
#set (TEST MiniClick.cpp)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
#find_package(SDL2_gfx REQUIRED)
#link_directories(${SDL2_GFX_LIBRARY_DIRS})
find_package(SDL2 REQUIRED)
link_directories(${SDL2_LIBRARY_DIRS} /opt/homebrew/lib/)
find_package(SDL2_ttf REQUIRED)
# include_directories(${SDL2_INCLUDE_DIRS} . Library APClass Library/jpeg)
include_directories(/opt/homebrew/include . Library Tools Toolkit
hom APClass Library/jpeg)
message( STATUS SDL2_INCLUDE_DIRS=${SDL2_INCLUDE_DIRS} )
message( STATUS SDL2_LIBRARIES=${SDL2_LIBRARIES} )

include(Library/CMakeLists.txt)
include(Tools/CMakeLists.txt)
include(APClass/CMakeLists.txt)
#add_subdirectory(Toolkit/CMakeLists.txt)

message( STATUS DRAWBOX=${DRAWBOX})

add_library(Drawbox STATIC ${DRAWBOX} ${TOOLS} ${APCLASS})
add_executable(TestProgram ${TEST} ${DRAWBOX} ${TOOLS} ${APCLASS})

target_compile_features(Drawbox PUBLIC cxx_std_11)
target_compile_options(Drawbox PRIVATE
-Wno-switch -Wno-deprecated-declarations -Wno-writable-strings)

target_compile_features(TestProgram PUBLIC cxx_std_11)
target_compile_options(TestProgram PRIVATE
-Wno-switch -Wno-deprecated-declarations -Wno-writable-strings)

#add_executable(Test Test/ClickDraw.cpp)
target_link_libraries(TestProgram ${SDL2_LIBRARIES} SDL2_gfx SDL2_ttf
/opt/homebrew/lib/libSDL2_image.dylib
/opt/homebrew/lib/libSDL2_ttf.dylib
/opt/homebrew/lib/libSDL2_mixer.dylib
)

Отредактируйте, чтобы добавить дополнительную информацию по запросу:
% cmake -L
< some warnings skipped>

-- Found SDL2_TTF: /opt/homebrew/lib/libSDL2_ttf.dylib
-- SDL2_INCLUDE_DIRS=/opt/homebrew/include/SDL2
-- SDL2_LIBRARIES=/opt/homebrew/lib/libSDL2.dylib-framework Cocoa/opt/homebrew/lib/libSDL2main.a
-- DRAWBOX=/Users/ken/prog24/Drawbox/Library/SpaceCalc.cpp/Users/ken/prog24/Drawbox/Library/Color.cpp/Users/ken/prog24/Drawbox/Library/FinePoint.cpp/Users/ken/prog24/Drawbox/Library/DrawboxWindow.cpp/Users/ken/prog24/Drawbox/Library/DrErrMessages.cpp/Users/ken/prog24/Drawbox/Library/DrEventQ.cpp/Users/ken/prog24/Drawbox/Library/Image.cpp/Users/ken/prog24/Drawbox/Library/PVector.cpp/Users/ken/prog24/Drawbox/Library/Point.cpp/Users/ken/prog24/Drawbox/Library/Rect.cpp/Users/ken/prog24/Drawbox/Library/Timer.cpp/Users/ken/prog24/Drawbox/Library/SDL/Drawbox.SDL.cpp/Users/ken/prog24/Drawbox/Library/SDL/Keyboard.SDL.cpp
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/ken/prog24/Drawbox
-- Cache values
CMAKE_BUILD_TYPE:STRING=
CMAKE_INSTALL_PREFIX:PATH=/usr/local
CMAKE_OSX_ARCHITECTURES:STRING=
CMAKE_OSX_DEPLOYMENT_TARGET:STRING=
CMAKE_OSX_SYSROOT:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk
SDL2MAIN_LIBRARY:FILEPATH=/opt/homebrew/lib/libSDL2main.a
SDL2_DIR:PATH=
SDL2_INCLUDE_DIR:PATH=/opt/homebrew/include/SDL2
SDL2_LIBRARY:STRING=/opt/homebrew/lib/libSDL2.dylib;-framework Cocoa
SDL2_TTF_INCLUDE_DIR:PATH=/opt/homebrew/include/SDL2
SDL2_TTF_LIBRARY:STRING=/opt/homebrew/lib/libSDL2_ttf.dylib
SDL2_ttf_DIR:PATH=/opt/homebrew/lib/cmake/SDL2_ttf

Вот выходные данные конфигурации, когда я повторно сохраняю CMakeLists.txt из VSCode:
[main] Configuring project: Drawbox
[proc] Executing command: /opt/homebrew/bin/cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ -Wno-dev --no-warn-unused-cli -S/Users/ken/prog24/Drawbox -B/Users/ken/prog24/Drawbox/build -G "Unix Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- SDL2_INCLUDE_DIRS=/opt/homebrew/include/SDL2
[cmake] -- SDL2_LIBRARIES=/opt/homebrew/lib/libSDL2.dylib-framework Cocoa/opt/homebrew/lib/libSDL2main.a
[cmake] -- DRAWBOX=/Users/ken/prog24/Drawbox/Library/SpaceCalc.cpp/Users/ken/prog24/Drawbox/Library/Color.cpp/Users/ken/prog24/Drawbox/Library/FinePoint.cpp/Users/ken/prog24/Drawbox/Library/DrawboxWindow.cpp/Users/ken/prog24/Drawbox/Library/DrErrMessages.cpp/Users/ken/prog24/Drawbox/Library/DrEventQ.cpp/Users/ken/prog24/Drawbox/Library/Image.cpp/Users/ken/prog24/Drawbox/Library/PVector.cpp/Users/ken/prog24/Drawbox/Library/Point.cpp/Users/ken/prog24/Drawbox/Library/Rect.cpp/Users/ken/prog24/Drawbox/Library/Timer.cpp/Users/ken/prog24/Drawbox/Library/SDL/Drawbox.SDL.cpp/Users/ken/prog24/Drawbox/Library/SDL/Keyboard.SDL.cpp
[cmake] -- Configuring done (0.0s)
[cmake] -- Generating done (0.0s)
[cmake] -- Build files have been written to: /Users/ken/prog24/Drawbox/build


Подробнее здесь: https://stackoverflow.com/questions/793 ... -libraries
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»