CMake - 使用外部库作为 APR
CMake - using external libraries as APR
我对这个 CMake 很陌生。
我需要使用 Apache 2 中的 APR,但这个构建系统有问题。 Apache 2 Web 服务器安装在 C:\Apache24 文件夹下,APR 相关包含文件位于 C:\Apache24\include 下以及 C:\Apache24\lib 文件夹下的库。
cmake_minimum_required(VERSION 3.15)
project(json C)
set(CMAKE_C_STANDARD 90)
include_directories(
C:\Apache24\include
)
link_directories(
C:\Apache24\lib
)
target_link_libraries(
json apr-1.lib
)
add_executable(larak larak.h larak.c main.c)
通过构建我得到这个错误:
Cannot specify link libraries for target "larak" which is not built by this project.
我已经阅读了很多类似的帖子,但大多数都是针对 Linux/Unix 系统的,而不是针对 Windows 和 APR/Apache。
target_link_libraries()
命令将库指定为 link 用于 特定的 目标。此目标名称必须作为命令的 first 参数提供,并且必须已经在您的 CMake 文件中进行了定义。由于您在 CMake 文件中只定义了一个目标 larak
,因此您可能想要执行如下操作:
cmake_minimum_required(VERSION 3.15)
project(json C)
set(CMAKE_C_STANDARD 90)
include_directories(
C:/Apache24/include
)
link_directories(
C:/Apache24/lib
)
add_executable(larak larak.h larak.c main.c)
target_link_libraries(larak PRIVATE
apr-1.lib
)
小心,CMake 可能会抱怨您使用的反斜杠 (\
)。您应该将它们转换为正斜杠。
请注意,您可以在 target_link_libraries()
命令中指定库的完整路径,以避免使用 link_directories()
命令。
cmake_minimum_required(VERSION 3.15)
project(json C)
set(CMAKE_C_STANDARD 90)
include_directories(
C:/Apache24/include
)
add_executable(larak larak.h larak.c main.c)
target_link_libraries(larak PRIVATE
C:/Apache24/lib/apr-1.lib
)
我对这个 CMake 很陌生。
我需要使用 Apache 2 中的 APR,但这个构建系统有问题。 Apache 2 Web 服务器安装在 C:\Apache24 文件夹下,APR 相关包含文件位于 C:\Apache24\include 下以及 C:\Apache24\lib 文件夹下的库。
cmake_minimum_required(VERSION 3.15)
project(json C)
set(CMAKE_C_STANDARD 90)
include_directories(
C:\Apache24\include
)
link_directories(
C:\Apache24\lib
)
target_link_libraries(
json apr-1.lib
)
add_executable(larak larak.h larak.c main.c)
通过构建我得到这个错误:
Cannot specify link libraries for target "larak" which is not built by this project.
我已经阅读了很多类似的帖子,但大多数都是针对 Linux/Unix 系统的,而不是针对 Windows 和 APR/Apache。
target_link_libraries()
命令将库指定为 link 用于 特定的 目标。此目标名称必须作为命令的 first 参数提供,并且必须已经在您的 CMake 文件中进行了定义。由于您在 CMake 文件中只定义了一个目标 larak
,因此您可能想要执行如下操作:
cmake_minimum_required(VERSION 3.15)
project(json C)
set(CMAKE_C_STANDARD 90)
include_directories(
C:/Apache24/include
)
link_directories(
C:/Apache24/lib
)
add_executable(larak larak.h larak.c main.c)
target_link_libraries(larak PRIVATE
apr-1.lib
)
小心,CMake 可能会抱怨您使用的反斜杠 (\
)。您应该将它们转换为正斜杠。
请注意,您可以在 target_link_libraries()
命令中指定库的完整路径,以避免使用 link_directories()
命令。
cmake_minimum_required(VERSION 3.15)
project(json C)
set(CMAKE_C_STANDARD 90)
include_directories(
C:/Apache24/include
)
add_executable(larak larak.h larak.c main.c)
target_link_libraries(larak PRIVATE
C:/Apache24/lib/apr-1.lib
)