我想知道是否可以从代码中指定链接器选项?编译器允许#pragma
指令抑制警告;我们可以在多大程度上延伸这个?
答案 0 :(得分:0)
(我正在考虑在Linux系统上隐式链接并使用GCC编译器;您可能可以根据您的操作系统调整答案)
不,不可能在代码中指定链接选项,并注意链接器正在处理目标文件(而不是它们内部的各个函数)。
但是,您的build procedure可以从源代码中提取链接器选项。例如,如果你有一个包含许多单源程序的目录(即http://myapp.com/search/newsearch
C ++源文件编译成$('form').submit(function() {
var baseUrl = $(this).attr('action'); // or var baseUrl = '@Url.Action("Index", "search")';
var url = baseUrl + '/' + $('clause').val(); // add value for skip if required
location.href = url; // redirect
return false; // cancel the default submit
});
可执行文件,aa.cc
编译成aa.bin
等)你可能会Makefile
提到
bb.cc
并在bb.bin
中发表评论:
%.bin: %.cc
$(CXX) $(CXXFLAGS) $(shell awk /Link:/{print $2} $<) $^ -o $@
顺便说一句,您可能还有一些GCC plugin registers并处理您的具体aa.cc
;如果您使用/* the link option is
Link: -lfoo
*/
代替#pragma
,则还可以使用Clang plugin;新的pragma可以在一个普通的Sqlite数据库中添加一些东西,稍后在链接时使用它。
所以你可以做复杂的事情,但我只是建议让你自己的make
rules来处理你的链接。