我最近在我的Mac上通过hombrew安装了ldc,当我注意到使用ldmd2来编译我的程序时,我正在测试运行代码作为D wiki中的脚本.差异是什么,因为这与运行ldc2的行为相同.
继承我的计划
import std.stdio;
void main()
{
writeln("Hello, world without explicit compilations!");
}
Run Code Online (Sandbox Code Playgroud)
编辑:该网站声明"对于小型项目,它只需一步编译和运行.大多数(如果不是全部)编译器包,包含一个名为rdmd/gdmd/ldmd或类似的工具.出于教学目的,我们称之为rdmd ".我从中获取的是它取决于您使用的编译器,但在ldc的情况下我应该使用ldmd.
我正在使用我在Mac上通过Homebrew安装的更新的openssl版本,并想知道是否有办法为CMAKE的FIND_PACKAGE函数设置启动路径?现在,当我尝试使用FIND_PACKAGE CMAKE查找我的操作系统使用的openssl的旧版本时.我目前在我的CMakeLists.txt中使用它
SET(OPENSSL_LIB_DIR /usr/local/Cellar/openssl/1.0.2f/lib)
INCLUDE_DIRECTORIES(/usr/local/Cellar/openssl/1.0.2f/include)
TARGET_LINK_LIBRARIES(mangaMe ${OPENSSL_LIB_DIR}/libcrypto.dylib ${OPENSSL_LIB_DIR}/libssl.dylib)
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是,如果我的openssl更新,我必须手动更新路径中的版本.我试过阅读CMAKE FIND_PACKAGE文档,但我不确定我将使用哪些PATH变量来获得我正在寻找的效果.
在C#中,为什么我能够使用以下代码编译和运行程序
public class HammingTFTP()
{
//class variables here
public HammingTFTP(string mode, string host, string fileName)
:this()
{
//code here
}
}
Run Code Online (Sandbox Code Playgroud)
我在mac上编码并运行mono 3.6.0.我明白在类声明之后应该没有(),我应该删除:this().只是想知道为什么这个编译并运行在第一位.这可能是给定版本的单声道的错误吗?
我最近开始学习 CMake 并决定将它用于我正在处理的一个旧项目。该项目有 cpp-netlib、boost 和 Openssl 作为依赖项。这是我想出的工作 CMakeLists.txt 文件。
CMAKE_MINIMUM_REQUIRED(VERSION 3.4.1)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
PROJECT(MangaMe)
INCLUDE_DIRECTORIES(includes)
ADD_EXECUTABLE(mangaMe src/mangaMe.cpp)
set(Boost_USE_MULTITHREADED ON)
FIND_PACKAGE(Boost 1.59.0 REQUIRED COMPONENTS system thread filesystem)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(mangaMe ${Boost_LIBRARIES})
SET(OPENSSL_LIB_DIR /usr/local/Cellar/openssl/1.0.2e/lib)
INCLUDE_DIRECTORIES(/usr/local/Cellar/openssl/1.0.2e/include)
TARGET_LINK_LIBRARIES(mangaMe ${OPENSSL_LIB_DIR}/libcrypto.dylib ${OPENSSL_LIB_DIR}/libssl.dylib)
#WHY DOESNT THIS WORK!?!??!!?
#FIND_PACKAGE(cppnetlib 0.11 REQUIRED COMPONENTS client-connections server-parsers uri)
#INCLUDE_DIRECTORIES(${cppnetlib_INCLUDE_DIRS})
#TARGET_LINK_LIBRARIES(mangaMe ${cppnetlib_LIBRARIES})
SET(CPPNETLIB_LIB_DIR /usr/local/Cellar/cpp-netlib/0.11.2/lib)
INCLUDE_DIRECTORIES(/usr/local/Cellar/cpp-netlib/0.11.2/include)
TARGET_LINK_LIBRARIES(mangaMe ${CPPNETLIB_LIB_DIR}/libcppnetlib-client-connections.a ${CPPNETLIB_LIB_DIR}/libcppnetlib-server-parsers.a ${CPPNETLIB_LIB_DIR}/libcppnetlib-uri.a)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人知道为什么使用 FIND_PACKAGE 来查找 cppnetlib 的注释掉部分不起作用?我使用自制软件来安装 cpp-netlib,当我运行 if(cppnetlib_FOUND) 时,我知道它找到了包,但似乎找不到库,所以当我尝试制作我的项目时,它错误地说它缺少 cpp 中的库-网络库。我还注意到,当我在 FIND_PACKAGE 中将版本设置为 0.11.2(当前安装的版本)时,我收到一条消息说
-- Boost version: 1.59.0
-- Found the following Boost libraries: …Run Code Online (Sandbox Code Playgroud)