Standalone Compiler

Atalantia

Atalantia

Aktives Mitglied
Thread Starter
Dabei seit
26.11.2009
Beiträge
1.894
Reaktionspunkte
432
Hallo Leute,
ich habe ein source file von github runtergeladen:
audio_switch.c
audio_switch.h
AudioSwitcher.xcodeproj
license.txt
main.c
Makefile
README.md

Ich möchte daraus das binary compilern habe aber kein xCode und developer installiert, weil die ganze Suite einfach monströs viel Platz braucht. Gibt es eine einfachere Möglichkeit?
 
Du brauchst zumindest die Developer Tools von 200MB.
 
  • Gefällt mir
Reaktionen: wegus und dg2rbf
Ich habe es mit "CMake" versucht. Komme aber nicht weiter: "Error in configuration process, project files may be invalid"

Developer Tools? Im Appstore sehe ich nur xCode. Kann man die Developer Tools separat runterladen?
 
Bei Apple Developer gibt es die einzeln.
Das sind aber keine Cmake Sourcen.
Einfach nur make.
 
  • Gefällt mir
Reaktionen: dg2rbf
Kann die Developer Tools nicht finden.
Der einfachste Befehl, den ich kenne, heißt:
Code:
pip3 -V
IMG_0336.png
 
  • Gefällt mir
Reaktionen: win2mac und Atalantia
Hmm... das wäre toll. Bei mir kommt folgende Melfung:
Code:
pip3 -V
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
PS: Aber
Code:
xcode-select --install
hat funktioniert.
 
War leider für nix. Nachdem ich die command line tools installiert habe, habe ich das Makefile doppleklickt aber es kamen nur Fehlermeldungen.
Im Makefile hat es nicht viel. Da steht eigentlich nur:
Code:
TARGET = SwitchAudioSource
OUTPUT = build/Release/$(TARGET)
CC=$(wildcard Source/*.c)

build: $(OUTPUT)

$(OUTPUT): $(CC)
    xcodebuild -target $(TARGET)
Ich glaube das Ding verlangt nach xCode.
 
xcodebuild müsste doch auch in den command line tools sein.
Du kannst doch auch alle Sourcen so kompilieren per Befehl.
Bei den wenig Dateien an sich kein Aufwand.
 
xcodebuild ist bei mir in /usr/bin. Wie soll ich das machen? Ich kann das command tool auch mit dem vollständigen pfad ansprechen. Etwa so?
Code:
/usr/bin/xcodebuild "pfadZu/audio_switch.c" "pfadZu/audio_switch.h" "pfadZu//main.c" -o "/pfadZu//output"
??

Versuchte die Hilfe aufzurufen:
Code:
xcodebuild -h
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
 
Hi,
Da wird xcode benötigt, nur mit den Command Line Tools ist es nicht getan.
 
Hast du noch mit einem Compiler ohne IDE gearbeitet?
Compiler sourcefiles
Also so was
clang *.c
oder
gcc *.c
 
Idee: Makefile anpassen und statt auf xcodebuild auf cc oder so verweisen, dann braucht man nur einen einfachen C-Compiler.
 
  • Gefällt mir
Reaktionen: dg2rbf
Hast du noch mit einem Compiler ohne IDE gearbeitet?
Compiler sourcefiles
Also so was
clang *.c
oder
gcc *.c
Nein, ich habe noch nie mit einem Compiler gearbeitet. Mit einer guten Anleitung würde ich das versuchen, sonst ist der Aufwand zu gross.
Welchen Compiler soll ich runterladen? Worauf muss ich das Makefile modifizieren.
 
Welchen Compiler soll ich runterladen? Worauf muss ich das Makefile modifizieren.
Den Compiler hast du doch schon mit den Command Line Tools.

Das Makefile interessiert nicht.
Musst auch keins erstellen für 2 Dateien.
Wo ist das Problem einfach
clang *.c
bzw
clang audio_switch.c main.c -o audio_switch
 
  • Gefällt mir
Reaktionen: Atalantia
Wow, da wurde tatsächlich etwas gearbeitet. Leider erfolglos:
Code:
clang audio_switch.c main.c -o audio_switch
audio_switch.c:215:81: warning: 'GetMacOSStatusErrorString' is deprecated: first deprecated in macOS 10.8
      [-Wdeprecated-declarations]
                    printf("Failed setting mute state. Error: %d (%s)", status, GetMacOSStatusErrorString(status));
                                                                                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Debugging.h:807:1: note:
      'GetMacOSStatusErrorString' has been explicitly marked deprecated here
GetMacOSStatusErrorString(OSStatus err)                       __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_1...
^
audio_switch.c:222:91: warning: 'GetMacOSStatusErrorString' is deprecated: first deprecated in macOS 10.8
      [-Wdeprecated-declarations]
                    printf("Failed setting mute state for input. Error: %d (%s)", status, GetMacOSStatusErrorStr...
                                                                                          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Debugging.h:807:1: note:
      'GetMacOSStatusErrorString' has been explicitly marked deprecated here
GetMacOSStatusErrorString(OSStatus err)                       __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_1...
^
audio_switch.c:227:92: warning: 'GetMacOSStatusErrorString' is deprecated: first deprecated in macOS 10.8
      [-Wdeprecated-declarations]
                    printf("Failed setting mute state for output. Error: %d (%s)", status, GetMacOSStatusErrorSt...
                                                                                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Debugging.h:807:1: note:
      'GetMacOSStatusErrorString' has been explicitly marked deprecated here
GetMacOSStatusErrorString(OSStatus err)                       __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_1...
^
audio_switch.c:210:16: warning: enumeration value 'kAudioTypeUnknown' not handled in switch [-Wswitch]
        switch(typeRequested) {
               ^
audio_switch.c:210:16: note: add missing switch cases
        switch(typeRequested) {
               ^
audio_switch.c:286:43: warning: passing 'const char *' to parameter of type 'char *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
        if (CFStringGetCString(deviceUID, deviceUID_string, maxSize, kCFStringEncodingUTF8)) {
                                          ^~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:333:57: note:
      passing argument to parameter 'buffer' here
Boolean CFStringGetCString(CFStringRef theString, char *buffer, CFIndex bufferSize, CFStringEncoding encoding);
                                                        ^
audio_switch.c:417:113: warning: incompatible integer to pointer conversion passing 'int' to parameter of type
      'const void * _Nullable' [-Wint-conversion]
  ...&propertyAddress, sizeof(AudioClassDescription), kAudioDevicePropertyScopeInput, &dataSize);
                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h:263:69: note:
      passing argument to parameter 'inQualifierData' here
                                const void* __nullable              inQualifierData,
                                                                    ^
audio_switch.c:601:21: warning: comparison between pointer and integer ('AudioDeviceID' (aka 'unsigned int') and
      'void *') [-Wpointer-integer-compare]
    if (newDeviceID != nil) {
        ~~~~~~~~~~~ ^  ~~~
audio_switch.c:612:21: warning: comparison between pointer and integer ('AudioDeviceID' (aka 'unsigned int') and
      'void *') [-Wpointer-integer-compare]
    if (newDeviceID != nil) {
        ~~~~~~~~~~~ ^  ~~~
audio_switch.c:623:21: warning: comparison between pointer and integer ('AudioDeviceID' (aka 'unsigned int') and
      'void *') [-Wpointer-integer-compare]
    if (newDeviceID != nil) {
        ~~~~~~~~~~~ ^  ~~~
audio_switch.c:703:12: warning: enumeration values 'kAudioTypeUnknown' and 'kAudioTypeAll' not handled in switch
      [-Wswitch]
    switch(typeRequested) {
           ^
audio_switch.c:703:12: note: add missing switch cases
    switch(typeRequested) {
           ^
audio_switch.c:718:23: error: use of undeclared identifier 'kAudioObjectPropertyElementMain'; did you mean
      'kAudioObjectPropertyElementName'?
        .mElement   = kAudioObjectPropertyElementMain,
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      kAudioObjectPropertyElementName
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h:331:5: note:
      'kAudioObjectPropertyElementName' declared here
    kAudioObjectPropertyElementName         = 'lchn',
    ^
10 warnings and 1 error generated.
Da scheint ein Haufen deprecated zu sein. Veraltete Software?
 
  • Gefällt mir
Reaktionen: dg2rbf
Weil da ein tiefes Misstrauen besteht. Brew nistet sich tief ins System und das letzte mal musste ich schlussendlich wegen haufenweise Störungen das System neu installieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: warnochfrei
Zurück
Oben Unten