Re[6]: static variable + static link
От: dad  
Дата: 15.06.15 09:37
Оценка:
> что на самом деле не работает

что не работает-то? в релизе?
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[3]: static variable + static link
От: greenpci  
Дата: 16.06.15 10:33
Оценка:
Здравствуйте, dad, Вы писали:

dad>спасибо. но хотелось бы быть твердо уверенным, что это не рашается с помощью флагов.

dad>-Wl,--whole-archive — дает еще больше проблем.

а в чем проблема? Надо обернуть линковку библиотеки в -Wl,--whole-archive <библиотека> -Wl,--no-whole-archive. Тогда берется все содержимое этой конкретной библиотеки, а остальные зависимости линкуются как обычно — избирательно. И при такой линковке конструктор будет вызван.

g++ -Wl,--whole-archive ../test_lib/libL.a -Wl,--no-whole-archive main.cpp
Re[4]: static variable + static link
От: dad  
Дата: 16.06.15 10:39
Оценка:
G>а в чем проблема? Надо обернуть линковку библиотеки в -Wl,--whole-archive <библиотека> -Wl,--no-whole-archive. Тогда берется все содержимое этой конкретной библиотеки, а остальные зависимости линкуются как обычно — избирательно. И при такой линковке конструктор будет вызван.

G>
G>g++ -Wl,--whole-archive ../test_lib/libL.a -Wl,--no-whole-archive main.cpp
G>


пробовал — масса ошибок. Проект сложный, библиотек много, cmake, и в конечном счете библиотека сама линкуется в ExternalProject у зависимости модуля прописываются через внешний файл.
выставить флаг на отдельный файл — не пробовал.
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[5]: static variable + static link
От: greenpci  
Дата: 16.06.15 10:53
Оценка: 6 (1)
Здравствуйте, dad, Вы писали:

dad>пробовал — масса ошибок. Проект сложный, библиотек много, cmake, и в конечном счете библиотека сама линкуется в ExternalProject у зависимости модуля прописываются через внешний файл.


Так и должно быть. У тебя будет куча повторяющихся символов. Нужно только один файл обернуть.

dad>выставить флаг на отдельный файл — не пробовал.


Попробуй.
Re[6]: static variable + static link
От: dad  
Дата: 16.06.15 11:43
Оценка: :)
D>Я сам и перенес. Выяснил, что на самом деле не работает (у меня в тестовом примере) Поэтому потёр, чтобы не позориться.
D>Хотя мысль про volatile возникла первой.

действительно не работает — из-за привнесенного наведенного бага либа собиралась как shared — а я обрадовался ))
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[6]: static variable + static link
От: dad  
Дата: 16.06.15 12:57
Оценка:
G>Попробуй.

сработало. но пришлось в нескольких местах файлы сборки править для cmake и для внешнего приложения и для тестов.
зато код лишний выпилил )
пока оставлю так, но конечном счете, думаю оставлю обвязку с явным вызовом — слишком грязный хак.
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.