Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build CMake-将外部库用作APR_Build_Cmake_Shared Libraries - Fatal编程技术网

Build CMake-将外部库用作APR

Build CMake-将外部库用作APR,build,cmake,shared-libraries,Build,Cmake,Shared Libraries,我对这家公司很陌生 我需要使用Apache2中的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\includ

我对这家公司很陌生

我需要使用Apache2中的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。

该命令指定要链接到特定目标的库。此目标名称必须作为命令的第一个参数提供,并且必须在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\u link\u libraries()
命令中指定库的完整路径,以避免使用
link\u 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
)

target\u link\u libraries
的第一个参数应该是可执行文件的名称(
larak
)。调用
target\u link\u库
应该在
add\u executable
call之后。有关详细信息,请参见重复问题及其答案。