CONFIGURATION_BUILD_DIR перезаписывает флаги компоновщика - PullRequest
0 голосов
/ 12 мая 2019

У меня есть следующий shell-скрипт:

xcodebuild -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=`sysctl -n hw.ncpu` \
            BUILD_DIR=../../Libraries/usr/lib \
            CONFIGURATION_BUILD_DIR=../../Libraries/usr/lib \
            -project ./libusb/Xcode/libusb.xcodeproj \
            -target "libusb" \
            -configuration Release \
            -xcconfig "./libusb_osx_config.xcconfig"

для компиляции LibUSB для MacOS через командную строку с включенными определенными флагами в моем .xcconfig:

#include "./libusb/Xcode/libusb.xcconfig"
ARCHS = $(ARCHS_STANDARD)
SDKROOT = macosx
SUPPORTED_PLATFORMS = macosx
VALID_ARCHS = i386 x86_64
MACOSX_DEPLOYMENT_TARGET = 10.14
SKIP_INSTALL = YES
INSTALL_PATH = "./libusb/build"
CODE_SIGNING_ALLOWED = NO
OTHER_LDFLAGS = -framework IOKit
LD_DYLIB_INSTALL_NAME = @rpath/libusb-1.0.0.dylib
PRODUCT_NAME = libusb-1.0.0

В ./Libraries/usr/lib У меня есть измененная версия IOKit.framework для iOS (не MacOS)!

Однако, если я запускаю приведенный выше скрипт с этой точной конфигурацией, он говорит мне:

ld: symbol(s) not found for architecture x86_64

для IOKit, потому что он пытается соединиться с моей модифицированной платформой iOS (ARM) вместо системной платформы MacOS. Если я удалил CONFIGURATION_BUILD_DIR, она связывается с системной платформой вместо моей пользовательской.

Есть ли способ заставить его всегда связываться с системной платформой, даже если указан CONFIGURATION_BUILD_DIR?Я использую только CONFIGURATION_BUILD_DIR, поэтому он поместит libusb-1.0.0.dylib в эту локальную папку ./Libraries/usr/lib.Без него он помещается в папку Release.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...