无法使用 cmake 编译项目 - 未定义对“ns_initparse”的引用

Unable to compile project with cmake - undefined reference to `ns_initparse'

我可以用纯 g++ 命令编译项目,但我不能用 cmake 做同样的事情。对不起愚蠢的问题。我刚开始使用 cmake,google 不会给我任何解决方案。

工作正常

g++ -static main.cpp -o test -Wl,-Bstatic -lresolv -lutil -lstdc++

但是当我用 cmake 编译时,我收到这样的错误

undefined reference to `ns_initparse'
undefined reference to `ns_parserr'
undefined reference to `forkpty'

我的cmake文件

cmake_minimum_required(VERSION 3.16)
project(test)

set(CMAKE_CXX_STANDARD 11)

add_link_options("-static")
add_compile_options("-lresolv -lutil") #it's like this options won't set
add_executable(test Source/main.cpp)

尝试将其他库链接到 target_link_libraries。为每个目标定义源也很有趣:

add_executable(test)

target_sources(test
    PRIVATE
    Source/main.cpp
    )

target_link_libraries(test
    PRIVATE
    -lresolv
    -lutil
    )

target_compile_options(test
    PRIVATE
    -Wl
    )