Salut Marc,
I’m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example:
———— program.scm —————
(c-define (factorial n) (char-string) char-string "factorial" "" (number->string (fact (string->number n))))
(define (fact n) (if (= n 0) 1 (* n (fact (- n 1)))))
———— program.scm —————
Then I call:
gsc -link program
and that generated program_.c and program.c
I then add those two files to my XCode project and then
— Add the /usr/local/Gambit-C/include to my headers search path — Add the /usr/local/Gambit-C/lib to my libraries search path — Add -lgambc as a linked flag — Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time
But when I compile the project I get a series of errors:
/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ‘___ps'
What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app.
Thank you, Francois Magnan
Afficher les réponses par date
All of those messages are warnings. Just add a compile flag to remove the warnings (and not treat them as errors). I don’t know what the flag is for clang.
Marc
On Feb 17, 2015, at 12:30 PM, Francois Magnan fmagnan@me.com wrote:
Salut Marc,
I’m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example:
———— program.scm —————
(c-define (factorial n) (char-string) char-string "factorial" "" (number->string (fact (string->number n))))
(define (fact n) (if (= n 0) 1 (* n (fact (- n 1)))))
———— program.scm —————
Then I call:
gsc -link program
and that generated program_.c and program.c
I then add those two files to my XCode project and then
— Add the /usr/local/Gambit-C/include to my headers search path — Add the /usr/local/Gambit-C/lib to my libraries search path — Add -lgambc as a linked flag — Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time
But when I compile the project I get a series of errors:
/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ‘___ps'
What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app.
Thank you, Francois Magnan
Hi,
Ah… yes. XCode treated them as errors by default! Now compilation succeeds but at link time I get errors for all used gambit functions:
Undefined symbols for architecture x86_64: "___cleanup()", referenced from: gambit_cleanup() in cefsimple_mac.o "___release_scmobj(long)", referenced from: factorial(char*) in program.o "___propagate_error(long)", referenced from: factorial(char*) in program.o "___setup_params_reset(___setup_params_struct*)", referenced from: gambit_setup() in cefsimple_mac.o …
Note that I tried to compile the program.c using the clang++ and clang because there are C++ files in the project. Here is the full link command generated by XCode:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -L/usr/local/Gambit-C/lib -F/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -filelist /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple.LinkFileList -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-ObjC -Wl,-pie -Wl,-search_paths_first -Wl,-headerpad_max_install_names /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/Debug/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/libcef_dll/Debug/libcef_dll_wrapper.a -lpthread -framework Cocoa -framework AppKit -lgambc -Xlinker -dependency_info -Xlinker /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple_dependency_info.dat -o /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug/cefsimple.app/Contents/MacOS/cefsimple
What am I missing? Thank you, Francois
On Feb 17, 2015, at 2:13 PM, Marc Feeley feeley@iro.umontreal.ca wrote:
All of those messages are warnings. Just add a compile flag to remove the warnings (and not treat them as errors). I don’t know what the flag is for clang.
Marc
On Feb 17, 2015, at 12:30 PM, Francois Magnan fmagnan@me.com wrote:
Salut Marc,
I’m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example:
———— program.scm —————
(c-define (factorial n) (char-string) char-string "factorial" "" (number->string (fact (string->number n))))
(define (fact n) (if (= n 0) 1 (* n (fact (- n 1)))))
———— program.scm —————
Then I call:
gsc -link program
and that generated program_.c and program.c
I then add those two files to my XCode project and then
— Add the /usr/local/Gambit-C/include to my headers search path — Add the /usr/local/Gambit-C/lib to my libraries search path — Add -lgambc as a linked flag — Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time
But when I compile the project I get a series of errors:
/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ‘___ps'
What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app.
Thank you, Francois Magnan
Make sure all the files (including the Gambit lib) are compiled using clang++. You have to force this somehow because by default .c files are compiled using clang. Also, make sure you are compiling to x86_64 in all cases.
Marc
On Feb 18, 2015, at 9:31 AM, Francois Magnan fmagnan@me.com wrote:
Hi,
Ah… yes. XCode treated them as errors by default! Now compilation succeeds but at link time I get errors for all used gambit functions:
Undefined symbols for architecture x86_64: "___cleanup()", referenced from: gambit_cleanup() in cefsimple_mac.o "___release_scmobj(long)", referenced from: factorial(char*) in program.o "___propagate_error(long)", referenced from: factorial(char*) in program.o "___setup_params_reset(___setup_params_struct*)", referenced from: gambit_setup() in cefsimple_mac.o …
Note that I tried to compile the program.c using the clang++ and clang because there are C++ files in the project. Here is the full link command generated by XCode:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -L/usr/local/Gambit-C/lib -F/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -filelist /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple.LinkFileList -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-ObjC -Wl,-pie -Wl,-search_paths_first -Wl,-headerpad_max_install_names /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/Debug/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/libcef_dll/Debug/libcef_dll_wrapper.a -lpthread -framework Cocoa -framework AppKit -lgambc -Xlinker -dependency_info -Xlinker /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple_dependency_info.dat -o /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug/cefsimple.app/Contents/MacOS/cefsimple
What am I missing? Thank you, Francois
On Feb 17, 2015, at 2:13 PM, Marc Feeley feeley@iro.umontreal.ca wrote:
All of those messages are warnings. Just add a compile flag to remove the warnings (and not treat them as errors). I don’t know what the flag is for clang.
Marc
On Feb 17, 2015, at 12:30 PM, Francois Magnan fmagnan@me.com wrote:
Salut Marc,
I’m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example:
———— program.scm —————
(c-define (factorial n) (char-string) char-string "factorial" "" (number->string (fact (string->number n))))
(define (fact n) (if (= n 0) 1 (* n (fact (- n 1)))))
———— program.scm —————
Then I call:
gsc -link program
and that generated program_.c and program.c
I then add those two files to my XCode project and then
— Add the /usr/local/Gambit-C/include to my headers search path — Add the /usr/local/Gambit-C/lib to my libraries search path — Add -lgambc as a linked flag — Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time
But when I compile the project I get a series of errors:
/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ‘___ps'
What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app.
Thank you, Francois Magnan
On Wed, Feb 18, 2015 at 10:50:19AM -0500, Marc Feeley wrote:
Make sure all the files (including the Gambit lib) are compiled using clang++. You have to force this somehow because by default .c files are compiled using clang. Also, make sure you are compiling to x86_64 in all cases.
Yeah. C++'s sales point initially was that it was compatible with C. No more.
-- hendrik