介子没有 link 库
meson doesn't link library
我正在尝试修复介子构建未在 link 库中获取的问题。 meson.build
文件有
tz_dep = dependency(
'date',
default_options : [ 'use_system_tzdb=true' ],
fallback: [ 'date', 'tz_dep' ]
)
# ...
executable(
'waybar',
src_files,
dependencies: [
# ...
tz_dep
],
include_directories: [include_directories('include')],
install: true,
)
它确实找到了 /usr/lib/x86_64-linux-gnu/cmake/date/dateConfig.cmake
。对应的dateTargets-none.cmake
为
#----------------------------------------------------------------
# Generated CMake target import file for configuration "None".
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "date::date-tz" for configuration "None"
set_property(TARGET date::date-tz APPEND PROPERTY IMPORTED_CONFIGURATIONS NONE)
set_target_properties(date::date-tz PROPERTIES
IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/x86_64-linux-gnu/libdate-tz.so.2.4.1"
IMPORTED_SONAME_NONE "libdate-tz.so.2.4.1"
)
list(APPEND _IMPORT_CHECK_TARGETS date::date-tz )
list(APPEND _IMPORT_CHECK_FILES_FOR_date::date-tz "${_IMPORT_PREFIX}/lib/x86_64-linux-gnu/libdate-tz.so.2.4.1" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
然而,介子并不link /usr/lib/x86_64-linux-gnu/libdate-tz.so.2.4.1
。
我不确定问题是出在meson还是cmake配置上。如果需要,我可以提供更多详细信息。
我现在正在为 waybar 编写一个 ebuild(gentoo 包)并且遇到了与您描述的相同的问题。解决方案在您的 meson.build
文件中,它指定 date
依赖不完整。
这是我应用的补丁,然后它起作用了(我对介子之类的东西一无所知,但这似乎使 waybar
编译):
diff --git a/meson.build b/meson.build
index 5d45a29..dd56c29 100644
--- a/meson.build
+++ b/meson.build
@@ -98,7 +98,7 @@ gtk_layer_shell = dependency('gtk-layer-shell-0',
required: get_option('gtk-layer-shell'),
fallback : ['gtk-layer-shell', 'gtk_layer_shell_dep'])
systemd = dependency('systemd', required: get_option('systemd'))
-tz_dep = dependency('date', default_options : [ 'use_system_tzdb=true' ], fallback: [ 'date', 'tz_dep' ])
+tz_dep = dependency('date', default_options : [ 'use_system_tzdb=true' ], modules : [ 'date::date', 'date::date-tz' ], fallback: [ 'date', 'tz_dep' ])
prefix = get_option('prefix')
sysconfdir = get_option('sysconfdir')
也许这有帮助!
最好的问候,乔纳斯
我正在尝试修复介子构建未在 link 库中获取的问题。 meson.build
文件有
tz_dep = dependency(
'date',
default_options : [ 'use_system_tzdb=true' ],
fallback: [ 'date', 'tz_dep' ]
)
# ...
executable(
'waybar',
src_files,
dependencies: [
# ...
tz_dep
],
include_directories: [include_directories('include')],
install: true,
)
它确实找到了 /usr/lib/x86_64-linux-gnu/cmake/date/dateConfig.cmake
。对应的dateTargets-none.cmake
为
#----------------------------------------------------------------
# Generated CMake target import file for configuration "None".
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "date::date-tz" for configuration "None"
set_property(TARGET date::date-tz APPEND PROPERTY IMPORTED_CONFIGURATIONS NONE)
set_target_properties(date::date-tz PROPERTIES
IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/x86_64-linux-gnu/libdate-tz.so.2.4.1"
IMPORTED_SONAME_NONE "libdate-tz.so.2.4.1"
)
list(APPEND _IMPORT_CHECK_TARGETS date::date-tz )
list(APPEND _IMPORT_CHECK_FILES_FOR_date::date-tz "${_IMPORT_PREFIX}/lib/x86_64-linux-gnu/libdate-tz.so.2.4.1" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
然而,介子并不link /usr/lib/x86_64-linux-gnu/libdate-tz.so.2.4.1
。
我不确定问题是出在meson还是cmake配置上。如果需要,我可以提供更多详细信息。
我现在正在为 waybar 编写一个 ebuild(gentoo 包)并且遇到了与您描述的相同的问题。解决方案在您的 meson.build
文件中,它指定 date
依赖不完整。
这是我应用的补丁,然后它起作用了(我对介子之类的东西一无所知,但这似乎使 waybar
编译):
diff --git a/meson.build b/meson.build
index 5d45a29..dd56c29 100644
--- a/meson.build
+++ b/meson.build
@@ -98,7 +98,7 @@ gtk_layer_shell = dependency('gtk-layer-shell-0',
required: get_option('gtk-layer-shell'),
fallback : ['gtk-layer-shell', 'gtk_layer_shell_dep'])
systemd = dependency('systemd', required: get_option('systemd'))
-tz_dep = dependency('date', default_options : [ 'use_system_tzdb=true' ], fallback: [ 'date', 'tz_dep' ])
+tz_dep = dependency('date', default_options : [ 'use_system_tzdb=true' ], modules : [ 'date::date', 'date::date-tz' ], fallback: [ 'date', 'tz_dep' ])
prefix = get_option('prefix')
sysconfdir = get_option('sysconfdir')
也许这有帮助!
最好的问候,乔纳斯