我正在为一个根本维护得不好的旧项目进行构建;它或多或少是由数百个独立项目拼凑而成的大杂烩。当然,这意味着发生了很多不恰当的事情。
可能有 50-100 个可执行文件,以及大约 300 个共享/静态库。一些库是使用-mt标志构建的(sun studio;-pthreads似乎是 gcc 等效项),而其他库则不是。
这对我来说似乎有潜在的问题。假设我有libA.so
- libB.so
A是用-mt构建的,但不是B。我希望与A & B链接的应用程序是单线程的,不会有任何问题(请随时纠正我)。但是,如果应用程序是线程化的,那么这种情况会带来一堆有趣的蠕虫。
我倾向于使用-mt构建所有内容并完成它。办公室的大多数人都同意这个计划,但有一个反对者。我的期望是,这只会造成性能的潜在下降,但由于该项目的糟糕状态,目前性能已经很糟糕了;所以我对此并不担心。
简而言之:这样做有什么潜在的陷阱吗?