Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C++ 版本的问题。 #106

Open
okman334 opened this issue Jul 8, 2024 · 2 comments
Open

C++ 版本的问题。 #106

okman334 opened this issue Jul 8, 2024 · 2 comments

Comments

@okman334
Copy link

okman334 commented Jul 8, 2024

C++版本只有一个头文件,而头文件里面有个静态变量IdGenerator *IdGenerator::instance,如果在多个模块下#include "IdGenerator.h",会出现重复定义吧。应该把IdGenerator *IdGenerator::instance = NULL放到到cpp文件里面才比较符合工程上应用吧。

@rinace43
Copy link

老哥怎么样这样定义影响功能吗

@coalooball
Copy link

这个问题我也遇到了

(lysk-python) somnambulatory@somnambulatorys-Mac-mini FileWhisperer % cmake --build build  
[9/11] Linking CXX executable tests/hello_test
FAILED: tests/hello_test tests/hello_test[1]_tests.cmake /Users/somnambulatory/opt/FileWhisperer/build/tests/hello_test[1]_tests.cmake 
: && /Library/Developer/CommandLineTools/usr/bin/c++ -O3 -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  tests/CMakeFiles/hello_test.dir/test_utils.cc.o tests/CMakeFiles/hello_test.dir/hello_test.cc.o tests/CMakeFiles/hello_test.dir/mime_type_test.cc.o tests/CMakeFiles/hello_test.dir/url_extract_test.cc.o tests/CMakeFiles/hello_test.dir/qrcode_extract_test.cc.o tests/CMakeFiles/hello_test.dir/html_test.cc.o -o tests/hello_test  file_whisper_lib/libfile_whisper_lib.a  vcpkg_installed/arm64-osx/lib/manual-link/libgtest_main.a  vcpkg_installed/arm64-osx/debug/lib/libssl.a  vcpkg_installed/arm64-osx/debug/lib/libcrypto.a  -ldl  vcpkg_installed/arm64-osx/lib/libmagic.a  vcpkg_installed/arm64-osx/lib/libicudata.a  vcpkg_installed/arm64-osx/lib/libicuuc.a  vcpkg_installed/arm64-osx/lib/libicui18n.a  vcpkg_installed/arm64-osx/lib/libicuio.a  vcpkg_installed/arm64-osx/lib/libre2.a  vcpkg_installed/arm64-osx/lib/libspdlog.a  vcpkg_installed/arm64-osx/lib/libfmt.a  -force_load  vcpkg_installed/arm64-osx/lib/libicudata.a  vcpkg_installed/arm64-osx/lib/libbit7z64.a  vcpkg_installed/arm64-osx/lib/lib7zip.a  vcpkg_installed/arm64-osx/lib/libopencv_highgui4.a  vcpkg_installed/arm64-osx/lib/libopencv_ml4.a  vcpkg_installed/arm64-osx/lib/libopencv_objdetect4.a  vcpkg_installed/arm64-osx/lib/libquirc.a  vcpkg_installed/arm64-osx/lib/libopencv_photo4.a  vcpkg_installed/arm64-osx/lib/libopencv_stitching4.a  vcpkg_installed/arm64-osx/lib/libopencv_video4.a  vcpkg_installed/arm64-osx/lib/libopencv_calib3d4.a  vcpkg_installed/arm64-osx/lib/libopencv_dnn4.a  vcpkg_installed/arm64-osx/lib/libprotobuf.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_check_op.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_marshalling.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_reflection.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_config.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_program_name.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_private_handle_accessor.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_commandlineflag.a  vcpkg_installed/arm64-osx/lib/libabsl_flags_commandlineflag_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_leak_check.a  vcpkg_installed/arm64-osx/lib/libabsl_die_if_null.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_conditions.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_message.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_nullguard.a  vcpkg_installed/arm64-osx/lib/libabsl_examine_stack.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_format.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_proto.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_log_sink_set.a  vcpkg_installed/arm64-osx/lib/libabsl_log_sink.a  vcpkg_installed/arm64-osx/lib/libabsl_log_entry.a  vcpkg_installed/arm64-osx/lib/libabsl_log_initialize.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_globals.a  vcpkg_installed/arm64-osx/lib/libabsl_log_globals.a  vcpkg_installed/arm64-osx/lib/libabsl_vlog_config_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_log_internal_fnmatch.a  vcpkg_installed/arm64-osx/lib/libabsl_raw_hash_set.a  vcpkg_installed/arm64-osx/lib/libabsl_hash.a  vcpkg_installed/arm64-osx/lib/libabsl_city.a  vcpkg_installed/arm64-osx/lib/libabsl_low_level_hash.a  vcpkg_installed/arm64-osx/lib/libabsl_hashtablez_sampler.a  vcpkg_installed/arm64-osx/lib/libabsl_random_distributions.a  vcpkg_installed/arm64-osx/lib/libabsl_random_seed_sequences.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_pool_urbg.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_randen.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_randen_hwaes.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_randen_hwaes_impl.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_randen_slow.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_platform.a  vcpkg_installed/arm64-osx/lib/libabsl_random_internal_seed_material.a  vcpkg_installed/arm64-osx/lib/libabsl_random_seed_gen_exception.a  vcpkg_installed/arm64-osx/lib/libabsl_statusor.a  vcpkg_installed/arm64-osx/lib/libabsl_bad_variant_access.a  vcpkg_installed/arm64-osx/lib/libabsl_status.a  vcpkg_installed/arm64-osx/lib/libabsl_cord.a  vcpkg_installed/arm64-osx/lib/libabsl_bad_optional_access.a  vcpkg_installed/arm64-osx/lib/libabsl_cordz_info.a  vcpkg_installed/arm64-osx/lib/libabsl_cord_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_cordz_functions.a  vcpkg_installed/arm64-osx/lib/libabsl_exponential_biased.a  vcpkg_installed/arm64-osx/lib/libabsl_cordz_handle.a  vcpkg_installed/arm64-osx/lib/libabsl_synchronization.a  vcpkg_installed/arm64-osx/lib/libabsl_graphcycles_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_kernel_timeout_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_stacktrace.a  vcpkg_installed/arm64-osx/lib/libabsl_symbolize.a  vcpkg_installed/arm64-osx/lib/libabsl_malloc_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_debugging_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_demangle_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_demangle_rust.a  vcpkg_installed/arm64-osx/lib/libabsl_decode_rust_punycode.a  vcpkg_installed/arm64-osx/lib/libabsl_utf8_for_code_point.a  vcpkg_installed/arm64-osx/lib/libabsl_time.a  vcpkg_installed/arm64-osx/lib/libabsl_civil_time.a  vcpkg_installed/arm64-osx/lib/libabsl_time_zone.a  -Wl,-framework,CoreFoundation  vcpkg_installed/arm64-osx/lib/libabsl_crc_cord_state.a  vcpkg_installed/arm64-osx/lib/libabsl_crc32c.a  vcpkg_installed/arm64-osx/lib/libabsl_str_format_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_crc_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_crc_cpu_detect.a  vcpkg_installed/arm64-osx/lib/libabsl_strerror.a  vcpkg_installed/arm64-osx/lib/libutf8_validity.a  vcpkg_installed/arm64-osx/lib/libabsl_strings.a  vcpkg_installed/arm64-osx/lib/libabsl_int128.a  vcpkg_installed/arm64-osx/lib/libabsl_strings_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_string_view.a  vcpkg_installed/arm64-osx/lib/libabsl_base.a  vcpkg_installed/arm64-osx/lib/libabsl_spinlock_wait.a  vcpkg_installed/arm64-osx/lib/libabsl_throw_delegate.a  vcpkg_installed/arm64-osx/lib/libabsl_raw_logging_internal.a  vcpkg_installed/arm64-osx/lib/libabsl_log_severity.a  vcpkg_installed/arm64-osx/lib/libopencv_features2d4.a  vcpkg_installed/arm64-osx/lib/libopencv_flann4.a  vcpkg_installed/arm64-osx/lib/libopencv_videoio4.a  vcpkg_installed/arm64-osx/lib/libopencv_imgcodecs4.a  vcpkg_installed/arm64-osx/lib/libjpeg.a  vcpkg_installed/arm64-osx/lib/libwebpdecoder.a  vcpkg_installed/arm64-osx/lib/libwebp.a  vcpkg_installed/arm64-osx/lib/libwebpdemux.a  vcpkg_installed/arm64-osx/lib/libwebpmux.a  vcpkg_installed/arm64-osx/lib/libsharpyuv.a  vcpkg_installed/arm64-osx/lib/libpng16.a  vcpkg_installed/arm64-osx/lib/libtiff.a  vcpkg_installed/arm64-osx/lib/liblzma.a  vcpkg_installed/arm64-osx/lib/libjpeg.a  vcpkg_installed/arm64-osx/lib/libwebpdecoder.a  vcpkg_installed/arm64-osx/lib/libwebp.a  vcpkg_installed/arm64-osx/lib/libwebpdemux.a  vcpkg_installed/arm64-osx/lib/libwebpmux.a  vcpkg_installed/arm64-osx/lib/libsharpyuv.a  vcpkg_installed/arm64-osx/lib/libpng16.a  vcpkg_installed/arm64-osx/lib/libtiff.a  vcpkg_installed/arm64-osx/lib/liblzma.a  -lm  -framework AppKit  vcpkg_installed/arm64-osx/lib/libopencv_imgproc4.a  vcpkg_installed/arm64-osx/lib/libopencv_core4.a  vcpkg_installed/arm64-osx/lib/libz.a  vcpkg_installed/arm64-osx/lib/manual-link/opencv4_thirdparty/libtegra_hal.a  -framework Cocoa  -framework Accelerate  -framework AVFoundation  -framework CoreGraphics  -framework CoreMedia  -framework CoreVideo  -framework QuartzCore  vcpkg_installed/arm64-osx/lib/libgumbo.a  vcpkg_installed/arm64-osx/lib/libgtest.a && cd /Users/somnambulatory/opt/FileWhisperer/build/tests && /opt/homebrew/Cellar/cmake/3.29.2/bin/cmake -D TEST_TARGET=hello_test -D TEST_EXECUTABLE=/Users/somnambulatory/opt/FileWhisperer/build/tests/hello_test -D TEST_EXECUTOR= -D TEST_WORKING_DIR=/Users/somnambulatory/opt/FileWhisperer/build/tests -D TEST_EXTRA_ARGS= -D TEST_PROPERTIES= -D TEST_PREFIX= -D TEST_SUFFIX= -D TEST_FILTER= -D NO_PRETTY_TYPES=FALSE -D NO_PRETTY_VALUES=FALSE -D TEST_LIST=hello_test_TESTS -D CTEST_FILE=/Users/somnambulatory/opt/FileWhisperer/build/tests/hello_test[1]_tests.cmake -D TEST_DISCOVERY_TIMEOUT=5 -D TEST_XML_OUTPUT_DIR= -P /opt/homebrew/Cellar/cmake/3.29.2/share/cmake/Modules/GoogleTestAddTests.cmake
duplicate symbol 'idgen::IdGenerator::instance' in:
    tests/CMakeFiles/hello_test.dir/mime_type_test.cc.o
    file_whisper_lib/libfile_whisper_lib.a(common.cc.o)
duplicate symbol 'idgen::IdGenerator::instance' in:
    tests/CMakeFiles/hello_test.dir/mime_type_test.cc.o
    file_whisper_lib/libfile_whisper_lib.a(extractor.cc.o)
duplicate symbol 'idgen::IdGenerator::instance' in:
    tests/CMakeFiles/hello_test.dir/mime_type_test.cc.o
    tests/CMakeFiles/hello_test.dir/url_extract_test.cc.o
duplicate symbol 'idgen::IdGenerator::instance' in:
    tests/CMakeFiles/hello_test.dir/mime_type_test.cc.o
    tests/CMakeFiles/hello_test.dir/html_test.cc.o
duplicate symbol 'idgen::IdGenerator::instance' in:
    tests/CMakeFiles/hello_test.dir/mime_type_test.cc.o
    tests/CMakeFiles/hello_test.dir/qrcode_extract_test.cc.o
ld: 5 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[10/11] Building CXX object CMakeFiles/FileWhisperer.dir/src/server.cc.o
ninja: build stopped: subcommand failed.
(lysk-python) somnambulatory@somnambulatorys-Mac-mini FileWhisperer % 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants