如何在Makefile中替换LD变量来链接C对象

Mic*_*has 3 c makefile ld

我正在为C编写一个Makefile.我希望能够通过环境变量指定不同的编译和链接程序.但是,我希望它在没有任何其他变量的情况下工作.我试图与ld联系.但是,默认值不与标准C库链接.

问题:
如何将C程序与ld或$ LD链接
是否可以从cc获取适当的标志?

我无法$(CC)代替使用$(LD).这LD ?= cc也行不通.

我想要这样的东西是真的:
环境变量CC设置为tcc.
环境变量LD未设置.
我的Makefile使用tcc进行编译,并使用系统默认链接器为C进行链接.

不幸的是,一些C编译器无法链接某些库.我有tcc和glfw这个问题.

PS
Linux用户

Mat*_*ias 5

条件赋值$(LD)?= cc无法工作,因为$(LD)是预定义的.

如果要在没有预定义变量的情况下启动make,请使用选项-R:

   > make -p | grep LD
   ... 
   LD = ld
   ...
   > make -p -R | grep LD
   >
Run Code Online (Sandbox Code Playgroud)