[Bug]: flat_hash_map build with linker error
- Langage dominant
- C++
- Étoiles
- 18.1k
- Forks
- 3.2k
- Merge moyen
- 20 h 36 min
- PR mergées (30 j)
- 1
Description
### Describe the issue
Try to use flat_hash_map in a very simple example code:
```
#include "absl/container/flat_hash_map.h"
class foo {
absl::flat_hash_map m;
public:
foo() {
m[1] = 2;
m[2] = 3;
m[3] = 4;
}
};
int main() {
foo f;
return 0;
}
```
Build it with all possible .a libraries in install folder, but got error below:
```
hash.cc:(.text+0x30): undefined reference to `absl::hash_internal::CityHash32(char const*, unsigned long)'
/usr/bin/ld: /home/km/git/absl/lib/libabsl_hash.a(hash.cc.o): in function `absl::hash_internal::MixingHashState::CombineContiguousImpl(unsigned long, unsigned char const*, unsigned long, std::integral_constant)':
hash.cc:(.text._ZN4absl13hash_internal15MixingHashState21CombineContiguousImplEmPKhmSt17integral_constantIiLi4EE[_ZN4absl13hash_internal15MixingHashState21CombineContiguousImplEmPKhmSt17integral_constantIiLi4EE]+0x11b): undefined reference to `absl::hash_internal::CityHash32(char const*, unsigned long)'
/usr/bin/ld: /home/km/git/absl/lib/libabsl_raw_hash_set.a(raw_hash_set.cc.o): in function `absl::container_internal::(anonymous namespace)::ResizeEmptyNonAllocatedTableImpl(absl::container_internal::CommonFields&, absl::container_internal::PolicyFunctions const&, unsigned long, bool)':
raw_hash_set.cc:(.text+0x1a4a): undefined reference to `absl::container_internal::ForcedTrySample(unsigned long, unsigned long, unsigned long, unsigned short)'
/usr/bin/ld: /home/km/git/absl/lib/libabsl_raw_hash_set.a(raw_hash_set.cc.o): in function `absl::container_internal::(anonymous namespace)::ResizeFullSooTable(absl::container_internal::CommonFields&, absl::container_internal::PolicyFunctions const&, unsigned long, absl::container_internal::(anonymous namespace)::ResizeFullSooTableSamplingMode)':
raw_hash_set.cc:(.text+0x1e23): undefined reference to `absl::container_internal::ForcedTrySample(unsigned long, unsigned long, unsigned long, unsigned short)'
/usr/bin/ld: /home/km/git/absl/lib/libabsl_raw_hash_set.a(raw_hash_set.cc.o): in function `absl::container_internal::(anonymous namespace)::GrowToNextCapacityAndPrepareInsert(absl::container_internal::CommonFields&, absl::container_internal::PolicyFunctions const&, unsigned long)':
raw_hash_set.cc:(.text+0x27b0): undefined reference to `absl::container_internal::ForcedTrySample(unsigned long, unsigned long, unsigned long, unsigned short)'
collect2: error: ld returned 1 exit status
```
I thought this issue has reported previously and been fixed. But I still encounter this problem.
### Steps to reproduce the problem
g++ absl_p.cpp -I/home/km/git/absl/include -L/home/km/git/absl/lib -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_cord_internal -labsl_cordz_functions -labsl_cordz_handle -labsl_cordz_info -labsl_cordz_sample_token -labsl_crc32c -labsl_crc_cord_state -labsl_crc_cpu_detect -labsl_crc_internal -labsl_debugging_internal -labsl_decode_rust_punycode -labsl_demangle_internal -labsl_demangle_rust -labsl_die_if_null -labsl_examine_stack -labsl_exponential_biased -labsl_failure_signal_handler -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_parse -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_flags_usage -labsl_flags_usage_internal -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_kernel_timeout_internal -labsl_leak_check -labsl_log_flags -labsl_log_globals -labsl_log_initialize -labsl_log_internal_check_op -labsl_log_internal_conditions -labsl_log_internal_fnmatch -labsl_log_internal_format -labsl_log_internal_globals -labsl_log_internal_log_sink_set -labsl_log_internal_message -labsl_log_internal_nullguard -labsl_log_internal_proto -labsl_log_internal_structured_proto -labsl_log_severity -labsl_log_sink -labsl_low_level_hash -labsl_malloc_internal -labsl_periodic_sampler -labsl_poison -labsl_random_distributions -labsl_random_internal_distribution_test_util -labsl_random_internal_entropy_pool -labsl_random_internal_platform -labsl_random_internal_randen -labsl_random_internal_randen_hwaes -labsl_random_internal_randen_hwaes_impl -labsl_random_internal_randen_slow -labsl_random_internal_seed_material -labsl_random_seed_gen_exception -labsl_random_seed_sequences -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_scoped_set_env -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_statusor -labsl_str_format_internal -labsl_strerror -labsl_string_view -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_tracing_internal -labsl_utf8_for_code_point -labsl_vlog_config_internal
### What version of Abseil are you using?
latest git clone
### What operating system and version are you using?
ubuntu
### What compiler and version are you using?
g++ or clang++ have the same problem
### What build system are you using?
g++ or clang++ have the same problem
### Additional context
_No response_
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.