Wow, not a fish, but a fishing pole! :-) Ok, I'm beginning to remember some things long forgotten.
Thanks On Fri, Oct 24, 2025 at 5:23 PM Dave Allured - NOAA Affiliate < [email protected]> wrote: > Ken, these undefined symbol errors are a common occurrence. Here is more > general information for your future reference. Programs in C, fortran, and > certain other languages will call functions in external libraries for > various purposes. Each library contains many functions. When a program is > compiled, the linker tries to find those external functions by name. Some > functions are in system libraries that the linker already knows, so no > libraries are specified for these. > > External libraries such as "libcurl" need to be given explicitly in the > compile command, in two parts. In general, -L[PATH] (big "L") points to a > directory containing some libraries, and -l[NAME] (little "L") names a > specific library. For example, "-L/opt/local/lib -lcurl". If multiple > libraries in the same directory are requested, -L needs to be given only > once. This is why I did not suggest -L earlier, because your > compiler/linker was already including /opt/local/lib and some other library > directories. > > When naming a library with -l (little "L"), the linker adds the prefix > "lib" to the given name. For example, "-lcurl" resolves to "libcurl". The > file suffix such as ".a" or ".dylib" is NOT specified, and the linker will > figure out that part. > > The command "nm [LIBRARY FILE NAME] | grep ' T ' " will list all of the > available function names within a single library file. Try this on > /opt/local/lib/libcurl.dylib, and you will see those formerly missing CURL > symbols listed. Function names must match exactly, including underscores. > Knowing this, you can go hunting for missing libraries and symbols, > when you next run into the "undefined symbols" message. > > > On Fri, Oct 24, 2025 at 1:01 PM Kenneth Wolcott <[email protected]> > wrote: > >> Thank you Dave, I knew it was simple, right over my head. >> >> Now the problem is not with the code, not with compiling, not with >> linking, but that the Rosetta Code task itself doesn't work (web address >> change, etc). >> >> Thanks again for the help. >> >> On Fri, Oct 24, 2025 at 11:26 AM Dave Allured - NOAA Affiliate < >> [email protected]> wrote: >> >>> Add -lcurl. >>> >>> >>> On Fri, Oct 24, 2025 at 12:14 PM Kenneth Wolcott < >>> [email protected]> wrote: >>> >>>> Hi; >>>> >>>> trying to compile a Rosetta Code task written in C which uses curl; >>>> fails >>>> >>>> https://rosettacode.org/wiki/Web_scraping#C >>>> >>>> What am I missing? >>>> >>>> Perhaps I hav asked a similar question previously, hope not, apologies >>>> if so... >>>> >>>> Thanks, >>>> Ken Wolcott >>>> >>>> platform: arm64 Tahoe >>>> >>>> command: clang -v -o ./web_scraping ./web_scraping.c >>>> >>>> Failure output: >>>> >>>> Apple clang version 17.0.0 (clang-1700.3.19.1) >>>> Target: arm64-apple-darwin25.0.0 >>>> Thread model: posix >>>> InstalledDir: >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin >>>> >>>> "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" >>>> -cc1 -triple arm64-apple-macosx26.0.0 -Wundef-prefix=TARGET_OS_ >>>> -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage >>>> -Werror=implicit-function-declaration -emit-obj -dumpdir ./web_scraping- >>>> -disable-free -clear-ast-before-backend -disable-llvm-verifier >>>> -discard-value-names -main-file-name web_scraping.c -mrelocation-model pic >>>> -pic-level 2 -mframe-pointer=non-leaf -fno-strict-return -ffp-contract=on >>>> -fno-rounding-math -funwind-tables=1 -fobjc-msgsend-selector-stubs >>>> -target-sdk-version=26.0 -fvisibility-inlines-hidden-static-local-var >>>> -fdefine-target-os-macros -fno-assume-unique-vtables >>>> -fno-modulemap-allow-subdirectory-search -target-cpu apple-m1 >>>> -target-feature +zcm -target-feature +zcz -target-feature +v8.5a >>>> -target-feature +aes -target-feature +altnzcv -target-feature +ccdp >>>> -target-feature +complxnum -target-feature +crc -target-feature +dotprod >>>> -target-feature +fp-armv8 -target-feature +fp16fml -target-feature +fptoint >>>> -target-feature +fullfp16 -target-feature +jsconv -target-feature +lse >>>> -target-feature +neon -target-feature +pauth -target-feature +perfmon >>>> -target-feature +predres -target-feature +ras -target-feature +rcpc >>>> -target-feature +rdm -target-feature +sb -target-feature +sha2 >>>> -target-feature +sha3 -target-feature +specrestrict -target-feature +ssbs >>>> -target-abi darwinpcs -debugger-tuning=lldb >>>> -fdebug-compilation-dir=/Users/kwolcott/not_git_master/programming/from_Rosetta_Code/C/Web_Scraping >>>> -target-linker-version 1221.4 -v >>>> -fcoverage-compilation-dir=/Users/kwolcott/not_git_master/programming/from_Rosetta_Code/C/Web_Scraping >>>> -resource-dir >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17 >>>> -isysroot >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk >>>> -I/usr/local/include -c-isystem /opt/local/include -cxx-isystem >>>> /opt/local/include -internal-isystem >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include >>>> -internal-isystem >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/include >>>> -internal-externc-isystem >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include >>>> -internal-externc-isystem >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include >>>> -internal-iframework >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks >>>> -internal-iframework >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/SubFrameworks >>>> -internal-iframework >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks >>>> -Wno-reorder-init-list -Wno-implicit-int-float-conversion >>>> -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt >>>> -Wno-misleading-indentation -Wno-quoted-include-in-framework-header >>>> -Wno-implicit-fallthrough -Wno-enum-enum-conversion >>>> -Wno-enum-float-conversion -Wno-elaborated-enum-base -ferror-limit 19 >>>> -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks >>>> -fencode-extended-block-signature -fregister-global-dtors-with-atexit >>>> -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fmax-type-align=16 -fcommon >>>> -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation >>>> -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding >>>> -clang-vendor-feature=+revert09abecef7bbf >>>> -clang-vendor-feature=+thisNoAlignAttr >>>> -clang-vendor-feature=+thisNoNullAttr >>>> -clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError >>>> -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o >>>> /var/folders/f7/q14k59r11z310fdpl0m5mlc80000gn/T/web_scraping-babfe6.o -x c >>>> ./web_scraping.c >>>> clang -cc1 version 17.0.0 (clang-1700.3.19.1) default target >>>> arm64-apple-darwin25.0.0 >>>> ignoring nonexistent directory >>>> "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include" >>>> ignoring nonexistent directory >>>> "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks" >>>> #include "..." search starts here: >>>> #include <...> search starts here: >>>> /usr/local/include >>>> /opt/local/include >>>> >>>> >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/include >>>> >>>> >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include >>>> >>>> >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include >>>> >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks >>>> (framework directory) >>>> >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/SubFrameworks >>>> (framework directory) >>>> End of search list. >>>> >>>> "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" >>>> -demangle -lto_library >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib >>>> -no_deduplicate -dynamic -arch arm64 -platform_version macos 26.0.0 26.0 >>>> -syslibroot >>>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk >>>> -mllvm -enable-linkonceodr-outlining -o ./web_scraping -L/opt/local/lib >>>> -L/usr/local/lib >>>> /var/folders/f7/q14k59r11z310fdpl0m5mlc80000gn/T/web_scraping-babfe6.o >>>> -lSystem >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.osx.a >>>> Undefined symbols for architecture arm64: >>>> "_curl_easy_cleanup", referenced from: >>>> _main in web_scraping-babfe6.o >>>> "_curl_easy_init", referenced from: >>>> _main in web_scraping-babfe6.o >>>> "_curl_easy_perform", referenced from: >>>> _main in web_scraping-babfe6.o >>>> "_curl_easy_setopt", referenced from: >>>> _main in web_scraping-babfe6.o >>>> _main in web_scraping-babfe6.o >>>> _main in web_scraping-babfe6.o >>>> _main in web_scraping-babfe6.o >>>> ld: symbol(s) not found for architecture arm64 >>>> clang: error: linker command failed with exit code 1 (use -v to see >>>> invocation) >>>> >>>
