Creating static Mac OS X C build

后端 未结 3 735
遥遥无期
遥遥无期 2020-11-28 07:51

How can i create a static build of a .c file on Mac OS X ? When i try:

gcc -o test Main.c -static

I get:

ld: library not fo         


        
3条回答
  •  野性不改
    2020-11-28 08:01

    It is not supported in Mac OS X's gcc:

    http://discussions.apple.com/message.jspa?messageID=11053384

    Perhaps that "-static" flag flat out won't work on MacOS X. Not all features of gcc are implemented on MacOS X. Apple won't even be using gcc in future versions of the OS.

    I don't know how to link using "-static". I can't think of any reason to do so on MacOSX. If I knew why you wanted to use "-static" I might be more interested in the problem. Right now, I just don't get it. By asking for help, you are essentially asking for collaborators on the project - even if it is only for 10 minutes. You need to get me interested.

    And http://developer.apple.com/library/mac/#qa/qa2001/qa1118.html

    Static linking of user binaries is not supported on Mac OS X. Tying user binaries to the internal implementation of Mac OS X libraries and interfaces would limit our ability to update and enhance Mac OS X. Instead, dynamic linking is supported (linking against crt1.o automatically instead of looking for crt0.o, for example).

    We strongly recommend that you consider the limitations of statically linking very carefully, and consider your customer and their needs, plus the long-term support you will need to provide.

    Update: The prohibited is a static binary. But you still can compile some static library and use it with you another program. Program will be linked statically with your library, but other libraries like libc will be dynamic, so program will be a dynamic executable.

提交回复
热议问题