在online1下编译并运行程序.
swmore 发布的帖子
-
RE: 关于不同运行异构并行方法的使用
@kobu 可以参考一点上古Intel MIC比如Knights Corner的资料. 说白了两边编程模型多少有些像.
其实神威适合一个在别的地方学了点并行计算的人转过来. -
RE: 神威编译关于math.h报错
@czp 讲道理两个应该都可以...
链接静态库会有这个问题.
然后sw5cc都是静态链接.
静态链接的过程相当于:call_list = [] link_list = [] for parameter in parameter_list: if parameter.endswith(".o"): for function in parameter.find_external_function_call(): call_list.append(function) if parameter.endswith(".a") or parameter.startswith("-l"): for function in parameter.get_functions(): if function in call_list: link_list.append(function) for function in call_list: if function not in link_list: print("undefined reference to " + function)
大概很抽象的描述一下就是这样的...
所以你的.a
或者-l
放在.o
前面,call_list
是空的, 于是就认为: 你不需要这个静态库里面的任何函数, pass掉这个静态库.
用-Wl,--whole-archive
也是为了解决这个问题, 方式是强制把这个静态库里面所有东西丢到link_list
里面.
我其实也不明白为什么这么蛋疼.