LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Собственно указанная ошибка и возникает, потому что в output есть попытка прямого использования сущности из Perfetto.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при сборке output. А они ему потребуются, т.к. в нем подключается заголовочник PerfettoWrapper.h, который в свою очередь подключает Perfetto.h.

Если ты не делаешь target_link_libraries() с некоторой библиотекой, но как минимум используешь ее заголовочники - это говнокод в мире сборки. Потому что указанная команда в числе прочего обеспечивает доступность путей поиска заголовочников указанной цели.

Исправление rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Собственно указанная ошибка и возникает, потому что в output есть попытка прямого использования сущности из Perfetto.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при сборке output. А они ему потребуются, т.к. в нем подключается заголовочник PerfettoWrapper.h, который в свою очередь подключает Perfetto.h.

Если ты не делаешь target_link_libraries() с некоторой библиотекой, но как минимум используешь ее заголовочники - это говнокод в мире сборки.

Исправление rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Собственно указанная ошибка и возникает, потому что в output есть попытка прямого использования сущности из Perfetto.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при сборке output. А они ему потребуются, т.к. в нем подключается заголовочник PerfettoWrapper.h, который в свою очередь подключает Perfetto.h.

Если ты не делаешь target_link_libraries() с некоторой библиотекой, но как минимум используешь ее исходники - это говнокод в мире сборки.

Исправление rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Собственно указанная ошибка и возникает, потому что в output есть попытка прямого использования сущности из Perfetto.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при сборке output. А они ему потребуются, т.к. в нем подключается заголовочник PerfettoWrapper.h, который в свою очередь подключает Perfetto.h.

Исправление rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при сборке output. А они ему потребуются, т.к. в нем подключается заголовочник PerfettoWrapper.h, который в свою очередь подключает Perfetto.h.

Исправление rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при компиляции и сборке output. А они ему потребуются, т.к. в нем подключается заголовочник PerfettoWrapper.h, который в свою очередь подключает Perfetto.h.

Исправление rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Кроме того, в зависимости от расположения заголовочников Perfetto, вообще не факт, что они будут доступны при компиляции и сборке output.

Исходная версия rumgot, :

Ты не фига не понял, что я имел ввиду. Основная мысль пошла от поста про:

target_link_libraries(wrapper PRIVATE main)

после которой ТС ответил, что так получает ошибку:

[100%] Linking CXX executable output
/usr/bin/ld: CMakeFiles/output.dir/output.cpp.o: undefined reference to symbol '_ZN8perfetto8internal18TrackEventInternal21ResetIncrementalStateEPNS_15TraceWriterBaseENS_14TraceTimestampE'
/usr/bin/ld: /home/sysos/Desktop/test/example/build/libmain.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

На что я написал ему, что нужно все типы от Perfetto прятать в PerfettoWrapper.cpp и чтобы в PerfettoWrapper.h не было вообще никаких типов из Perfetto. Я это к тому, чтобы можно было делать

target_link_libraries(wrapper PRIVATE main)

без ошибок.

Кроме того, в зависимости от расположение заголовочников Perfetto, вообще не факт, что они будут доступны при компиляции и сборке output.